`
yinwufeng
  • 浏览: 287045 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

solr:CopyField

阅读更多

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,化多个字段为一个字段,缺点是不能区分各个字段的重要度差别。比如文章的标题和摘要,标题就要比摘要重要性更强,如果有这方面的要求,可以选择查询多个字段的做法。

分享到:
评论

相关推荐

    lunece 学习笔记实用知识库分享知识分享

    Solr 的 copyField 字段是指如何使用 copyField 字段来复制索引中的字段。我们可以使用 Solr 的 copyField 指令来实现字段的复制。 Solr 的搜索引擎 Solr 的搜索引擎是指如何使用 Solr 来实现搜索引擎。我们可以...

    solr4.1安装配置

    &lt;copyField source="content" dest="text"/&gt; ``` - 重启Tomcat服务,验证IK分词器的配置。 三、使用SolrJ操作Solr API 1. **添加SolrJ依赖**: - 添加SolrJ库所需的JAR包到项目构建路径,以便进行Solr API操作...

    利用solr实现商品的搜索功能(实例讲解)

    Solr的 CopyField: * 将item_title、item_sell_point、item_category_name、item_desc字段的值复制到item_keywords字段中。 Solr的优化: * 使用IKAnalyzer中文分词器对商品名称、商品卖点、商品描述进行分词...

    Solr安装与整合中文分词IKAnalyzer

    &lt;copyField source="name" dest="name"/&gt; ``` - 重新启动Solr服务:在命令提示符窗口中切换到Solr的`example`目录,再次执行`java -jar start.jar`。 - 在Solr管理界面上测试中文分词效果:在Analysis模块中,...

    Apache Solr and Tomcat6 Search engine

    4. **&lt;copyField&gt;**:将一个字段的内容复制到另一个字段,通常用于创建索引时的副本,以便于不同的搜索需求。 5. **** 和 ****:设置查询解析器的行为,如默认的布尔运算符(AND或OR)。 6. ****:定义文档相似度...

    1.2、Core的介绍和中文分词器的使用1

    在Solr中,Core是一个核心概念,它代表了独立的索引库,类似于MySQL中的数据库。每个Solr服务可以包含多个Core,每个Core都可以拥有自己的配置、索引数据和Schema。在进行Core的管理和操作时,我们需要了解以下几个...

    基于SOLR的电信增值业务信息检索系统的设计与实现

    在Schema.xml中,开发者可以通过定义&lt;copyField&gt;来将多个字段的内容复制到一个复合字段中,这样在进行模糊字段查询时,用户输入的查询关键字可以被转化为查询复合字段。默认检索字段的定义则用于规定哪些字段应当被...

    详解java整合solr5.0之solrj的使用

    在`schema.xml`中配置`copyField`指令,将这两个域的值复制到`msg_all`,这样搜索时只需针对`msg_all`域即可。同时,注意5.0版本之后,`schema.xml`不再设置默认搜索域,而是在`solrconfig.xml`中配置默认搜索字段。...

    springdataSolrDemo.rar

    "拷贝域"(copyField)的设置则允许将一个字段的值复制到另一个字段,常用于实现多字段搜索或者提升某些字段的搜索权重。 5. **部署环境** 该Demo是在Tomcat服务器上运行的,Tomcat是一款广泛应用的Java Servlet...

    ik分词器文档

    - `&lt;copyField&gt;`:用于将一个或多个字段的值复制到另一个字段中,便于集中管理索引。 - `source`:源字段名。 - `dest`:目标字段名。 - **目标域配置示例**: ```xml ``` 其中`text_general`类型定义如下:...

    schema.xml说明

    ### Solr中的schema.xml详解 在Solr搜索服务器中,`schema.xml` 文件扮演着核心配置文件的角色,它定义了索引字段、字段类型以及其他与数据结构相关的设置。正确理解和配置`schema.xml`对于实现高性能的全文检索...

Global site tag (gtag.js) - Google Analytics