Elasticsearch5.6.11+Ik分词器和自定义词库的配置与使用
1、Ik分词器下载
在https://github.com/medcl/elasticsearch-analysis-ik中下载对应版本的IK分词器elasticsearch-analysis-ik-5.6.11.zip。
2、Ik分词器配置
在elasticsearch-5.6.11根目录plugins文件夹下新建一个名为ik的文件夹,将elasticsearch-analysis-ik-5.6.11.zip解压到该文件夹下,如图:
3、重启elasticsearch。若加载ik分词器成功,启动日志中会显示如下日志:
[2018-10-08T16:57:18,878][INFO ][o.e.p.PluginsService ] [node-1] loaded plugin [analysis-ik]
ik_smart 和 ik_max_word 是两个不同的拆分粒度,最小粒度分词:
http://127.0.0.1:9200/index0/_analyze?analyzer=ik_max_word&pretty=true&text=我的世界
参数中index0是创建的索引名称。增加pretty参数会让Elasticsearch美化输出(pretty-print)JSON响应以便更加容易阅读。
4、Ik分词器自定义词库配置与使用
在config下新建自定义词库extra_mydic.dic,在里面添加了两个词“爱奇艺”和“百度”。然后在在IKAnalyzer.cfg.xml中添加该词库,并重启elasticsearch。在默认最小粒度分词的情况下关键词“爱奇艺”会被分为三个单字“爱”“奇”“艺”,但我想分词结果中有完词爱奇艺,看下配置词库后的效果:
http://127.0.0.1:9200/index0/_analyze?analyzer=ik_max_word&pretty=true&text=爱奇艺
结果符合预期。ik词库配置文件中还可以配置停词等,可自行尝试。若是要配置多个自定义词库,每个词库之间只需以英式分号隔开即可。
注意:(1)词库文件格式是UTF-8-BOM,(2)词库之间的分隔符是英式分号