中文分词

默认对中文分词的成果并不好,咱们增加IK分词。

下载

从新下载:先下载solr8版本对应的ik分词器,分词器GitHub源码地址:https://github.com/magese/ik-...

增加动静加载词典表性能,在不须要重启solr服务的状况下加载新增的词典。

敞开默认主词典请在IKAnalyzer.cfg.xml配置文件中设置use_main_dictfalse

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的值。留神批改文件 ,原文件配置的内容可能并不适用于所有我的项目。

  1. files为动静词典列表,能够设置多个词典表,用逗号进行分隔,默认动静词典表为dynamicdic.txt
  2. lastupdate默认值为0,每次对动静词典表批改后请+1,不然不会将词典表中新的词语增加到内存中。lastupdate采纳的是int类型, lastUpdatelong类型,能够用工夫戳。

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多平台公布