对本地Solr服务器添加IK中文分词器实现全文检索功能

Posted 1128XF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对本地Solr服务器添加IK中文分词器实现全文检索功能相关的知识,希望对你有一定的参考价值。

在上一篇随笔中我们提到schema.xml中<field/>元素标签的配置,该标签中有四个属性,分别是name、type、indexed与stored,这篇随笔将讲述通过设置type属性的值实现中文分词的检索功能

 

首先下载IK中文分词项目,下载地址https://code.google.com/archive/p/ik-analyzer/downloads?page=1

  

其中除了含有jar包之外,还有三个相关的配置文件

  

  第一步,将IKAnalyzer2012FF_u1.jar添加到项目的WEB-INF\\lib目录下

  

  第二步,将IKAnalyzer.cfg.xml与stopword.dic添加到项目的classes目录下

  

其中的ext.dic文件可手动进行扩展字典配置,在IKAnalyzer.cfg.xml配置文件中,我们可以看到对应的配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典 -->
    <entry key="ext_dict">ext.dic;</entry> 
    
    <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">stopword.dic;</entry> 
    
</properties>

 

第三步,也就是最重要的一步,需要在schema.xml文件中配置分词类型

  

<fieldType name="text_ik" class="solr.TextField">
      <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
      <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
   </fieldType>
 配置完成后,启动本地服务,在Analysis菜单页中可以实现分词测试

 

 
 这样我们在自定义field时,对需要分词的字段,则将其type属性值设为fieldType的name值即可实现分词检索 

再这里再记录下,在schema.xml中两个会用到的另外两个标签,uniqueKey与solrQueryParser
  • uniqueKey用来设置主键名称,默认为id
  •  

  • solrQueryParser用来设置分词时对字段的查询条件and与or,默认是or且被注释掉,当为and时,需要这个字段中包含输入的关键字分词后,所有的数据才能匹配成功
  •  

 

以上是关于对本地Solr服务器添加IK中文分词器实现全文检索功能的主要内容,如果未能解决你的问题,请参考以下文章

solr添加中文IK分词器,以及配置自定义词库

Solr6.6.0添加IK中文分词器

Solr集成IK中文分词器

solr添加分词器ik-analyzer-solr

lucene_07_solr使用IK分词器

solr ik分词怎样取消英文字母和数字分词