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":"南京市长江大桥"
}

根据结果我们看到 分词后的词典“南京市”,“南京”,"市长",""市,长江大桥,长江,大桥。结果。

Elasticsearch(二) ik分词器的安装 以及 自定义分词

自定义分词

        假如我们在对上面的分词结果中我们想要理解的结果为 南京市长,江大桥的结果。怎么办?ik分词器中所有词典没有江大桥的词语,所以没有拆分出来。这时我们则需要进行对词典扩充,添加自定义分词。

       ik分词器会将需要拆分的语句在其自身包含的词语中进行检索拆分,其词典中所包含的词语将会被拆分出来,不存在的词语不会被拆分出来。ik分词器的词典目录:/home/elastic/elasticsearch/plugins/analysis-ik/config

Elasticsearch(二) ik分词器的安装 以及 自定义分词

1,我们在该目录下创建我们的自定义词典 my.dic ,在my.dic中我们将我们需要被拆分出来的词语维护到里面进行保存。

Elasticsearch(二) ik分词器的安装 以及 自定义分词

2,保存之后ik还不能识别到,所以需要在IKAnalyzer.cfg.xml 文件中将我们的词典维护关联起来。

Elasticsearch(二) ik分词器的安装 以及 自定义分词

3,重新启动后我们在对 “南京市长江大桥”进行最细度分词后 会出现 江大桥 的结果。

Elasticsearch(二) ik分词器的安装 以及 自定义分词