Elasticsearch(二) ik分词器的安装 以及 自定义分词
ik分词器作为elasticsearch的一个插件,则是安装在es插件中。
ik分词器的安装
1,创建ik分词目录上传与es相同版本的ik分词器插件,不同版本可能es启动 报错
在elasticsearch的plugin 目录下创建分词器目录analysis-ik;
在 analysis-ik目录下上传 elasticsearch-analysis-ik-6.8.0.zip;并解压,解压后删除原始安装包;重新启动es;
2,启动完成后进行测试验证
ps ik分词器分为两种分词方式:ik_max_word(最细粒度分词); ik_smart(最粗粒度分词);
我们在kibana中 测试使用ik_max_word 对“南京市长江大桥”进行分词
POST _analyze
{
"analyzer":"ik_max_word",
"text":"南京市长江大桥"
}
根据结果我们看到 分词后的词典“南京市”,“南京”,"市长",""市,长江大桥,长江,大桥。结果。
自定义分词
假如我们在对上面的分词结果中我们想要理解的结果为 南京市长,江大桥的结果。怎么办?ik分词器中所有词典没有江大桥的词语,所以没有拆分出来。这时我们则需要进行对词典扩充,添加自定义分词。
ik分词器会将需要拆分的语句在其自身包含的词语中进行检索拆分,其词典中所包含的词语将会被拆分出来,不存在的词语不会被拆分出来。ik分词器的词典目录:/home/elastic/elasticsearch/plugins/analysis-ik/config
1,我们在该目录下创建我们的自定义词典 my.dic ,在my.dic中我们将我们需要被拆分出来的词语维护到里面进行保存。
2,保存之后ik还不能识别到,所以需要在IKAnalyzer.cfg.xml 文件中将我们的词典维护关联起来。
3,重新启动后我们在对 “南京市长江大桥”进行最细度分词后 会出现 江大桥 的结果。