Solr中文检索之copyField自定义配置

1 Solr copyField是什么?

1.1.应用场景

我们在搜索(检索)的时候,比如输入凯哥Java。一篇文章一般分为标题、简介、内容、作者、创建时间、修改时间、分类、标签等其他很多字段。在检索的时候,输入的关键字需要指定字段(在solr中称为域,这里就姑且称之为字段。望理解)进行检索(不可能从一个表中所有字段进行检索,因为有些字段不需要)。比如,输入关键字想从标题、简介、内容、作者这四个字段中检索。那么我们是不是在solr的schema.xml文件中重复这四个字段,然后在刷新solr的时候每次冗余(这里使用了数据库字段的说法,不对的。为了便于理解就用冗余望理解)这四个字段吗?

当然不是,solr为我们提供了一个copyField这个字段(域)。也就是复制域。

1.2.语法:

说明:

source:原来的域。也就是你想要复制的域

dest(destination):目标域。也就是要复制到那个字段。

1.3.用法举例:

Solr的schema.xml中:

定义了name字段


定义了一个text字段:


via copyField further on in this schema  -->

name字段内容复制到text字段中:

说明:将name这个字段(域)复制到text字段(域)中。

2 copy到使用了自定义的中文分词器中

2.1.先solr中引入中文分词器(这里就省略。以后会详细讲解)

2.2.在solr的schema.xml中添加自定义的分词类型

2.3.在copyField字段使用自定义目标和自定义中文分词器

2.3.1创建自定义目标字段使用自定义的中文分词器

2.3.2.在copyField字段中使用自定义目标字段

完整的:




配置完成重启solr服务。

使用代码测试:

检索高亮显示结果:

检索目标:

进行检索结果:

结果评测:

出现想要的结果且高亮。至此配置自定义目标域使用自定义分词器ok.

需要注意的:

在使用copyField时候,source和dest这两个都需要先申明才可以。

欢迎关注凯哥微信公众号:凯哥Java

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Solr是什么? Solr是一个开源的、独立的、快速的、高性能、高可扩展的企业级搜索应用服务器,用于构建搜索应...
    sky_storming阅读 5,565评论 0 0
  • 1. 什么是solr    Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的...
    东方舵手阅读 4,466评论 1 5
  • 全文检索技术分析 使用Lucene实现单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索引维护、...
    Zephyr_07阅读 14,316评论 0 5
  • title: Solr安装配置及使用categories: 搜索tags: Solrdate: 2019-07-2...
    COPASTERS阅读 5,458评论 0 0
  • Solr的安装与配置 多数搜索引擎应用都必须具有某种搜索功能,而搜索功能往往大量的消耗资源导致应用程序运行缓慢。为...
    TyCoding阅读 10,639评论 1 5