中文分词
默认对中文分词的成果并不好,咱们增加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多平台公布