中文分词
默认对中文分词的成果并不好,咱们增加 IK 分词。
下载
从新下载:先下载 solr8 版本对应的 ik 分词器,分词器 GitHub 源码地址:https://github.com/magese/ik-…
增加动静加载词典表性能,在不须要重启 solr 服务的状况下加载新增的词典。
敞开默认主词典请在
IKAnalyzer.cfg.xml
配置文件中设置use_main_dict
为false
。
ik-analyzer-8.5.0.jar 下载地址
装置
下载好之后,将 IK 对应的 jar 将下载好的 jar 包放入 solr-8.11.2/server/solr-webapp/webapp/WEB-INF/lib 目录中,而后在 server\solr-webapp\webapp\WEB-INF\ 上面创立一个 classes 的目录,将 jar 包中的 5 个文件(IKAnalyzer.cfg.xml , ext.dic 和 stopword.dic,dynamicdic.txt,ik.conf)复制到这个 classes 目录下。
stopword.dic 和 ext.dic 别离为禁止词词库和扩大词库,留神,词库的的编码方式为 UTF-8 无 BOM 的编码方式,增加新词的时候,须要留神。
dynamicdic.txt 为动静词库须要配合 ik.conf 应用,
ik.conf 中配置动静词库文件名,及上次批改版本号 lastupdate,每次批改动静词库,须要更新 lastupdate 的值。留神批改文件,原文件配置的内容可能并不适用于所有我的项目。
files
为动静词典列表,能够设置多个词典表,用逗号进行分隔,默认动静词典表为dynamicdic.txt
;lastupdate
默认值为0
,每次对动静词典表批改后请 +1,不然不会将词典表中新的词语增加到内存中。lastupdate
采纳的是int
类型,lastUpdate
为long
类型,能够用工夫戳。
dynamicdic.txt 为动静词库,在此文件配置的词语不需重启服务即可加载进内存中。以 #
结尾的词语视为正文,将不会加载到内存中。
配置
编辑 core 的 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>
将 description 字段设置为 text_ik 类型,从新导入数据。留神:肯定要从新导入数据。
查问
到 core 的分词菜单中验证一下 description 字段是否按中文分词了,能够看到一件依照中文的分词习惯进行了分词。
而后执行一下搜寻,能够看到搜寻 ” 大家 ” 曾经能搜到了
本文由 mdnice 多平台公布