ES默认对英文文本的分词器支持较好,但和lucene同样,若是须要对中文进行全文检索,那么须要使用中文分词器,同lucene同样,在使用中文全文检索前,须要集成IK分词器。java
能够从GitHub上获取:https://github.com/medcl/elasticsearch-analysis-ikgit
由于是源码,咱们要用到maven对其进行打包,所以你须要安装maven。github
环境:centos6.九、elasticsearsh5.6.五、java1.8centos
一、下载dom
在GitHub上获取与easticsearch对应的ik分词器版本。我下载的是elasticsearch-analysis-ik-5.6.5.zipelasticsearch
二、打包maven
在本地解压,从dom窗口进入ik分词器的解压目录,测试
执行maven打包命令:spa
mvn install
在解压目录找到target/releases/elasticsearch-analysis-ik-5.2.2.zip文件插件
三、上传、解压
将此文件用fit协议上传到elasticsearch的插件目录下(elasticsearch安装目录里的plugins目录)
解压
unzip elasticsearch-analysis-ik-5.6.5.zip
重命名
mv elasticsearch ik
删除压缩包
rm -rf elasticsearch-analysis-ik-5.6.5.zip
四、重启ES
五、测试分词器
POST _analyze
{
"analyzer":"ik_smart",
"text":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"
}
用kibana插件的测试效果以下:
说明成功啦!
注意:IK分词器有两种类型,分别是ik_smart分词器和ik_max_word分词器。
ik_smart: 会作最粗粒度的拆分,好比会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。
ik_max_word: 会将文本作最细粒度的拆分,好比会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各类可能的组合;