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: 會將文本作最細粒度的拆分,好比會將「中華人民共和國國歌」拆分爲「中華人民共和國,中華人民,中華,華人,人民共和國,人民,人,民,共和國,共和,和,國國,國歌」,會窮盡各類可能的組合;