1. 程式人生 > >Elasticsearch5.6.11+Ik分詞器和自定義詞庫的配置與使用

Elasticsearch5.6.11+Ik分詞器和自定義詞庫的配置與使用

1、Ik分詞器下載

https://github.com/medcl/elasticsearch-analysis-ik中下載對應版本的IK分詞器elasticsearch-analysis-ik-5.6.11.zip。

2、Ik分詞器配置

在elasticsearch-5.6.11根目錄plugins資料夾下新建一個名為ik的資料夾,將elasticsearch-analysis-ik-5.6.11.zip解壓到該資料夾下,如圖:

3、重啟elasticsearch。若載入ik分詞器成功,啟動日誌中會顯示如下日誌:

[2018-10-08T16:57:18,878][INFO ][o.e.p.PluginsService     ] [node-1] loaded plugin [analysis-ik]

ik_smart 和 ik_max_word 是兩個不同的拆分粒度,最小粒度分詞:

http://127.0.0.1:9200/index0/_analyze?analyzer=ik_max_word&pretty=true&text=我的世界

引數中index0是建立的索引名稱。增加pretty引數會讓Elasticsearch美化輸出(pretty-print)JSON響應以便更加容易閱讀。

4、Ik分詞器自定義詞庫配置與使用

在config下新建自定義詞庫extra_mydic.dic,在裡面添加了兩個詞“愛奇藝”和“百度”。然後在在IKAnalyzer.cfg.xml中新增該詞庫,並重啟elasticsearch。在預設最小粒度分詞的情況下關鍵詞“愛奇藝”會被分為三個單字“愛”“奇”“藝”,但我想分詞結果中有完詞愛奇藝,看下配置詞庫後的效果:

http://127.0.0.1:9200/index0/_analyze?analyzer=ik_max_word&pretty=true&text=愛奇藝

結果符合預期。ik詞庫配置檔案中還可以配置停詞等,可自行嘗試。若是要配置多個自定義詞庫,每個詞庫之間只需以英式分號隔開即可。

注意:(1)詞庫檔案格式是UTF-8-BOM,(2)詞庫之間的分隔符是英式分號。