solr:CopyField multiValued
2013-01-11 16:22
211 查看
solr:CopyField
solr的index schema中,除了支持基本数值类型的field,还支持一些特别的field,比如较常用的CopyField。以下面的schema配置片断为例:<schema name="eshequn.post.db_post.0" version="1.1" xmlns:xi="http://www.w3.org/2001/XInclude"> <fields> <!-- for title --> <field name="t" type="text" indexed="true" stored="false" /> <!-- for abstract --> <field name="a" type="text" indexed="true" stored="false" /> <!-- for title and abstract --> <field name="ta" type="text" indexed="true" stored="false" multiValued="true"/> </fields> <copyField source="t" dest="ta" /> <copyField source="a" dest="ta" /> </schema>
字段t是文章的标题,字段a是文章的摘要,字段ta是文章标题和摘要的联合。添加索引文档时,只需要传入t和a字段的内容,solr会自动索引ta字段。 这算不上多高级的功能,不过如果让你来实现这个功能,你会怎么做呢?我接手的搜索系统原来就有类似的功能,它的做法是,将t和a字段的文本合并,塞到ta 字段,无可厚非的做法。不过,有人注意到lucene的Document类提供的public final Field[] getFields(String name)类似函数不?也就是说,lucene中的一个name可以对应多个Field。solr在添加索引时,会检查field
name是不是copyField集合中的source,是的话就以其value构造dest field。如果dest由多个source构成,就需要将其指定为multiValued。
对于查询来说,如果查询字段要来自多个字段,一种选择是使用CopyField,化多个字段为一个字段,缺点是不能区分各个字段的重要度差别。比如文章的标题和摘要,标题就要比摘要重要性更强,如果有这方面的要求,可以选择查询多个字段的做法。
相关文章推荐
- 统计solr multivalued 字段中数目
- solr multivalued
- org.apache.solr.common.SolrException: ERROR: multiple values encountered for non multiValued copy
- Solr部分更新MultiValued的Date日期字段时报错及解决方案:Invalid Date String:'Mon Sep 14 01:48:38 CST 2015'
- solr multiValued的查询
- Functional Dependencies & MultiValued Dependency
- solr学习之四--------Field、CopyField、DynamicField
- PB中multieditline空间的“~r~n"转"~n"
- solr 1.4.0 multi core deploy
- solr学习Field、CopyField、DynamicField
- Solr中配置文件schema.xml之copyField 与multiValued用途
- solr拾遗:CopyField
- solr联合多个字段进行检索(multivalued和copyfield的使用)
- multi-core solr deploy process(not complete)
- Solr fields sorting 排序相关(Integers, Longs, Floats, or String and multi-language 多语言相关)
- multi-core solr deploy process(not complete)
- solr 的 field, copyfield ,dynamic field
- Solr5.3.1通过copyField设置多个field(字段)同时检索
- 七、solr Field、CopyField、DynamicField区别
- solr multivalue的实现分析 推荐