Elasticsearch(二)| IK中文分词器安装
在使用Elasticsearch 进行搜索中文时,Elasticsearch 内置的分词器会将所有的汉字切分为单个字,对于习惯中文的一些形容词、常见名字等无法优雅的处理,此时就需要用到一些开源的分词器,目前用的最多的就是IK分词器(项目地址:https://github.com/medcl/elasticsearch-analysis-ik)
安装
IK分词器的安装十分简单,使用下面命令即可:
elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.4.1
注意这里的版本要和Elasticsearch版本一致,否则会报错
java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 8.4.1 but version 8.4.2 is running
当看到下面的输出就表示安装完成:
-> Installed analysis-ik -> Please restart Elasticsearch to activate any plugins installed
重启Elasticsearch即可
systemctl restart elasticsearch
模式
ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合,适合 Term Query;
ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询。
自定义词库
如果要让分词器支持一些专有词语,可以自定义词库。
IK分词器自带一个main.dic的文件,此文件为词库文件,这个文件在/etc/elasticsearch/analysis-ik/main.dic
。
注意这个文件格式必须为utf-8(不要选择utf-8 BOM)。
0