IK 中文分词器,很少有直接下载使用的,都需要通过 github 下载源码,本地编译打包。就是 maven 工程中的 package 能力。
github 上提供的源码不是伴随 ES 的每个版本提供,一般只有分词器无效后,才提供新的版本。通常都是伴随 ES 的次版本号提供 IK 分词器版本。下载对应的 IK 分词器源码,本地 package 打包,生成 zip 压缩包,既是 IK 在 ES 中的分词器安装包。
https://github.com/medcl/elasticsearch-analysis-ik.git
⦁ 安装IK 中文分词器
ElasticSearch 是一个开箱即用的工具。插件安装方式也非常简单。
将 IK 分词器的 zip 压缩文件上传到两个Linux节点(es01和es02)中,并在 ElasticSearch 安装目录的 plugins 目录中手工创建子目录,目录命名为 ik。将 zip 压缩文件解压缩到新建目录 ik 中。重新启动ElasticSearch 即可。
上传中文分词器 zip 压缩文件到 ElasticSearch 应用目录中:
elasticsearch-analysis-ik-6.8.4.zip 到/es01/app/
修改上传后的压缩文件的用户组和用户
chown -R es01.es01 elasticsearch-analysis-ik-6.8.4.zip
切换到es01用户在plugins目录下创建放IK 中文分词子目录:mkdir ik
移动压缩文件到 ik 插件目录中:
mv elasticsearch-analysis-ik-6.8.4.zip ik/
解压缩:
unzip elasticsearch-analysis-ik-6.8.4.zip
所有的分词器,都是针对词语的,不是语句的。拆分单元是词语,不是语句。
⦁ 测试IK 分词器
这样中文分词器就安装好,重启ElasticSearch 测试,在启动 ./kibana
IK 分词器提供了两种 analyzer,分别是 ik_max_word 和 ik_smart。
ik_max_word:
会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,国,国歌”,会穷尽各种可能的组合;
ik_smart:
会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。
分出简单词汇:ik_smart
⦁ IK 配置文件
IK 的配置文件在 ElasticSearch 安装目录/usr/local/es02/plugins/ik/config中。
配置文件有:
main.dic : IK 中内置的词典。 main dictionary。记录 了 IK 统计的所有中文单词。一行一词。文件中未记录的单词,IK 无法实现有效分词。
如:雨女无瓜。不建议修改当前文件中的单词。这个是最核心的中文单词库。就好像,很多的网络词不会收集到辞海中一样。
quantifier.dic : IK 内置的数据单位词典suffix.dic :IK 内置的后缀词典surname.dic :IK 内置的姓氏词典stopword.dic :IK 内置的英文停用词
preposition.dic :IK 内置的中文停用词(介词)
IKAnalyzer.cfg.xml :
用于配置自定义词库的自定义词库是用户手工提供的特殊词典,类似网络热词,特定业务用词等。
ext_dict:
自定义词库,配置方式为相对于IKAnalyzer.cfg.xml文件所在位置的相对路径寻址方式。相当于是用户自定义的一个main.dic文件。是对main.dic文件的扩展。
ext_stopwords:
自定义停用词,配置方式为相对于IKAnalyzer.cfg.xml文件所在位置的相对路径寻址方式。相当于是preposition.dic的扩展。
注意:IK的所有的 dic词库文件,必须使用 UTF-8字符集。不建议使用 windows自带的文本编辑器编辑。Windows中自带的文本编辑器是使用 GBK字符集 。IK不识别,是乱码。