Solr中配置文件schema.xml之copyField 与multiValued用途

转载 2016年06月02日 09:52:20

原文链接:http://hbin8668.blog.163.com/blog/static/178844311201375113752169/

copyField multiValued用途

在我们的应用中经常会有这种情形:当用户输入某个字符串查找时,需要如果在标题及内容中存在这个字会串时均要把记录加载出来,通过引入copyFieldmultiValue这两个标签便可解决这种问题。如:

1.   <schema name="eshequn.post.db_post.0" version="1.1"  

2.       xmlns:xi="http://www.w3.org/2001/XInclude">  

3.        <fields>  

5.           <field name="title" type="text" indexed="true" stored="false" />  

6.          <field name="content" type="text" indexed="true" stored="false" />  

8.           <field name="tc" type="text" indexed="true" stored="false" multiValued="true"/>  

10.      </fields>  

11.      <copyField source="title" dest="tc" />  

12.      <copyField source="content" dest="tc" />  

  </schema>

字段title是文章的标题,字段content是文章的摘要,字段tc是文章标题和内容的联合。添加索引文档时,只需要传入titlecontent字段的内容,solr会自动索引ta字段。 这算不上多高级的功能,不过如果让你来实现这个功能,你会怎么做呢?我接手的搜索系统原来就有类似的功能,它的做法是,将ta字段的文本合并,塞到ta 字段,无可厚非的做法。

不过,有人注意到luceneDocument类提供的public final Field[] getFields(String name)类似函数不?也就是说,lucene中的一个name可以对应多个Fieldsolr在添加索引时,会检查field name是不是copyField集合中的source,是的话就以其value构造dest field。如果dest由多个source构成,就需要将其指定为multiValued对于查询来说,如果查询字段要来自多个字段,一种选择是使用CopyField,化多个字段为一个字段,缺点是不能区分各个字段的重要度差别。比如文章的标题和摘要,标题就要比摘要重要性更强,如果有这方面的要求,可以选择查询多个字段的做法。

solr联合多个字段进行检索(multivalued和copyfield的使用)

在实际工作中不仅仅对索引中的单个字段进行搜索。 比如book表中有id,name(标题),price,summary(摘要),content(内容),我们要找一本书的时候,查询关键字“平凡的世界”,...
  • u010248330
  • u010248330
  • 2017年06月09日 15:52
  • 3409

solr的multivalued使用说明

solr的schema.xml配置文件在配置Filed的时候,有个属性:        MutiValued:true if this field may containmutiple valu...
  • lich0000
  • lich0000
  • 2013年03月17日 09:38
  • 2375

solr的multivalued使用说明

solr的schema.xml配置文件在配置Filed的时候,有个属性:        MutiValued:true if this field may containmutiple valu...
  • alen1985
  • alen1985
  • 2013年01月24日 17:10
  • 18237

solr学习之四--------Field、CopyField、DynamicField

上面一节乱七八槽的讲了一下FieldType。  其实你可以想的简单一点,FieldType就好像是我们在Java中自定义类型。 Field:    Field就是一个字段,定义一个Fie...
  • zl3450341
  • zl3450341
  • 2013年10月18日 10:33
  • 34775

solr CopyField 解释

solr的index schema中,除了支持基本数值类型的field,还支持一些特别的field,比如较常用的CopyField。以下面的schema配置片断为例: ...
  • babydavic
  • babydavic
  • 2013年03月19日 10:30
  • 8497

solr搜索引擎 copyField字段 检索查询

添加一个文档 查询添加的文档 以上详细介绍了query里面的参数详解。 当不输入任何条件时,进行查询,看看返回结果。 返回了刚才添加进去的文档。 ...
  • zhouzhiwengang
  • zhouzhiwengang
  • 2017年01月10日 18:48
  • 1422

Solr中的Field、CopyField、DynamicField与其他Field

一、介绍 在用户进行索引或者搜索的过程中,各种各样的Field提供给用户数据存储的借口,Solr通过读取Field的属性来对Field中的数据进行相关的处理。这里介绍Solr常用的Field(域)、...
  • u011518678
  • u011518678
  • 2016年07月10日 17:36
  • 2358

Solr多值示例

在这个Solr多值示例的示例中,我们将讨论如何索引包含多个值的字段,并演示如何检索它们。 Solr存储单个值字段和多个值字段的索引值的方式没有区别。 但是,虽然从存储中检索多值字段,我们将获得结果作为...
  • boonya
  • boonya
  • 2017年02月12日 11:14
  • 2095

solr multiValued的查询

SolrServer solrserver = new HttpSolrServer( SOLR_URL ); SolrQuery query = new SolrQuery(); query...
  • softwarehe
  • softwarehe
  • 2013年05月23日 15:43
  • 2060

solr CopyField

solr的index schema中,除了支持基本数值类型的field,还支持一些特别的field,比如较常用的CopyField。以下面的schema配置片断为例: ...
  • lisong526
  • lisong526
  • 2012年04月14日 23:18
  • 3393
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Solr中配置文件schema.xml之copyField 与multiValued用途
举报原因:
原因补充:

(最多只允许输入30个字)