聊聊 elasticsearch 之分詞器配置 (IK+pinyin)
系統:windows 10
elasticsearch版本:5.6.9
es分詞的選擇
- 使用es是考慮服務的性能調優,經過讀寫分離的方式下降頻繁訪問數據庫的壓力,至於分詞的選擇考慮主要是根據目前比較流行的分詞模式,根據參考文檔本身搭建測試。
es配置目錄結構
- 在此先貼出es下plugins的目錄結構,避免安裝時一臉茫然(出自本人配置目錄,可根據自身須要進行調整):
- es插件目錄結構:
- ik壓縮包內文件列表:
- pinyin壓縮包內文件目錄:
IK 分詞器
pinyin分詞器
分詞器的測試案例
- IK分詞,主要強調兩種分詞模式:ik_smart和ik_max_word
- ik_smart是將文本作了正確的拆分,以下圖:
![](http://static.javashuo.com/static/loading.gif)
- 看到結果發現ik_smart分詞模式拆分的不夠細,「陽光明媚」並無拆分開,因此接下來就該另外一種分詞出場了 ---- ik_max_word,直接上結果,以下圖:
![](http://static.javashuo.com/static/loading.gif)
- 這種更加詳細的拆分纔是我想要的,這回不用擔憂高級搜索了····
- 拼音分詞,簡言之就是將文本拆分紅更加詳細拼音,圖解以下:
- ik與pinyin的結合使用(注:當使用分詞搜索數據的時候,必須是經過分詞器分析的數據才能搜索出來,不然沒法搜索出數據)
- 建立索引時能夠自定義分詞器配置,經過映射能夠指定自定義的分詞器,配置以下圖:
- 建立名稱爲「greatom」的索引,自定義「ik_smart_pinyin」和「ik_max_word_pinyin」的分詞器,過濾設置爲「g_pinyin」,如上圖右側提示則表示設置成功,能夠經過「GET greatom/settings」查詢配置信息。
- 建立type時,須要在字段的解析屬性(analyzer)中設置自定義名稱的映射,以下圖:
- 如上圖右側提示則表示建立成功,接下來增長點數據,以便後續測試。
- 測試數據按照上圖方式便可進行批量新增,也可對索引數據進行查詢。接下來就開始正式的分詞查詢。
- 上圖表示兩種分詞的查詢格式,能夠聯想搜索出相關的全部數據,感受比較智能了。
結尾
- 經過對es分詞的瞭解和使用,發現選擇的兩種分詞模式已經知足本身項目的使用,還未進行更深刻的瞭解,後續會繼續瞭解底層及分詞原理,若有瑕疵或更好的看法,但願能夠交流學習。
歡迎關注本站公眾號,獲取更多信息