solr7.7配置中文分词

由于solr原生包对中文分词时会把每个字分成一个词,如下图:
在这里插入图片描述在关键字查询时分词很不适用,所以需要我们手动添加分词jar包。solr有两种中文分词jar包,一种是solr自带的,一种是IKAnalyzer

solr自带分词

将下载的solr目录下的\solr-7.7.2\contrib\analysis-extras\lucene-libs\lucene-analyzers-smartcn-7.7.2.jar文件复制到\solr\WEB-INF\lib下;
修改solrhome文件\solrhome\myCore\conf\managed-schema,这个是你创建的集合的配置文件,路径可能不同,但文件名是相同的,修改如下:

    <!-- solr 自带中文分词 -->
    <fieldType name="text_so" class="solr.TextField" positionIncrementGap="100">
       <analyzer type="index">
         <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
        </analyzer>
        <analyzer type="query">
          <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
        </analyzer>
	</fieldType>

修改后重启solr,选择你修改的集合,输入测试中文,选刚创建分词类型即可在这里插入图片描述
可以看到上面已经成功把每个词都提取出来了。

IKAnalyzer分词

  1. 首先下载IKAnalyzer分词包

    整理好的分词包
    github

  2. 安装配置

    将下载好的jar包复制到\solr\WEB-INF\lib下
    修改solrhome文件\solrhome\myCore\conf\managed-schema,这个是你创建的集合的配置文件,路径可能不同,但文件名是相同的,修改如下:

    	<!-- ik 自带中文分词 -->
    
	<fieldType name="text_ik" class="solr.TextField">
	  <analyzer type="index">
		  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
		  <filter class="solr.LowerCaseFilterFactory"/>
	  </analyzer>
	  <analyzer type="query">
		  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
		  <filter class="solr.LowerCaseFilterFactory"/>
	  </analyzer>
	</fieldType>

修改后重启solr,选择你修改的集合,输入测试中文,选刚创建分词类型即可在这里插入图片描述

  1. 配置自己的中文分词规则
    将上步中下载的zip包解压,将除了jar包的三个文件复制到solr的classes目录下
    在这里插入图片描述
    你可以通过修改ext.dic或者stopword.dic文件来配置你想要的分词规则,或者你也可以添加自己的分词文件,把你自己的分词文件加入到配置配置文件IKAnalyzer.cfg.xml中即可在这里插入图片描述
    如你可以把一些游戏名添加分词规则,如上古卷轴,流放者柯南
    配置前
    在这里插入图片描述
    配置后在这里插入图片描述
    你若是从github上下载jar包,要用解压软件打开,把上面说的配置文件复制过去即可在这里插入图片描述

版权声明:本文为weixin_42390245原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。