聊聊 elasticsearch 之分詞器配置 (IK+pinyin)


系統:windows 10
elasticsearch版本:5.6.9

es分詞的選擇

  • 使用es是考慮服務的性能調優,通過讀寫分離的方式降低頻繁訪問數據庫的壓力,至於分詞的選擇考慮主要是根據目前比較流行的分詞模式,根據參考文檔自己搭建測試。

es配置目錄結構

  • 在此先貼出es下plugins的目錄結構,避免安裝時一臉茫然(出自本人配置目錄,可根據自身需要進行調整):
  • es插件目錄結構:                                                                                                                                                                                

     

  • ik壓縮包內文件列表:                                                                                                                                                                                                                                                                            
  • pinyin壓縮包內文件目錄:                                                                                                                                                                                           

     


IK 分詞器

  • IK分詞器下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v5.6.11
  • 進入鏈接,選擇對應版本編譯好的壓縮包,點擊即可下載。如下圖:                                                                                                     
  • 上述步驟下載后,解壓文件到至\elasticsearch5.6.9\plugins\ik目錄下(如無ik目錄,手動創建即可),重新啟動es服務,即可看到控制台輸出的插件信息,表示配置成功。如下圖:

pinyin分詞器

  • 拼音分詞器下載地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases?after=v5.6.11
  • 拼音分詞的配置類似於ik分詞,進入鏈接,選擇對應版本編譯好的壓縮包,點擊即可下載。如下圖:                                                                           
  • 上述步驟下載后,解壓文件到至\elasticsearch5.6.9\plugins\pinyin目錄下(如無pinyin目錄,手動創建即可),重新啟動es服務,即可看到控制台輸出的插件信息,表示配置成功。如下圖:

     


分詞器的測試案例

  •  IK分詞,主要強調兩種分詞模式:ik_smartik_max_word
    •   ik_smart是將文本做了正確的拆分,如下圖:                                                                                                                  
    • 看到結果發現ik_smart分詞模式拆分的不夠細,“陽光明媚”並沒有拆分開,所以接下來就該另一種分詞出場了 ---- ik_max_word,直接上結果,如下圖:
    • 這種更加詳細的拆分才是我想要的,這回不用擔心高級搜索了····
  •  拼音分詞,簡言之就是將文本拆分成更加詳細拼音,圖解如下:                                                                   

     

  • ik與pinyin的結合使用(注:當使用分詞搜索數據的時候,必須是通過分詞器分析的數據才能搜索出來,否則無法搜索出數據
    • 創建索引時可以自定義分詞器配置,通過映射可以指定自定義的分詞器,配置如下圖:                                        

       

    • 創建名稱為“greatom”的索引,自定義“ik_smart_pinyin”和“ik_max_word_pinyin”的分詞器,過濾設置為“g_pinyin”,如上圖右側提示則表示設置成功,可以通過“GET greatom/settings”查詢配置信息。
    • 創建type時,需要在字段的解析屬性(analyzer)中設置自定義名稱的映射,如下圖:                                                                                                            

       

    • 如上圖右側提示則表示創建成功,接下來增加點數據,以便后續測試。                                                         

       

    • 測試數據按照上圖方式即可進行批量新增,也可對索引數據進行查詢。接下來就開始正式的分詞查詢。           

       

    • 上圖表示兩種分詞的查詢格式,可以聯想搜索出相關的所有數據,感覺比較智能了。

結尾

  • 通過對es分詞的了解和使用,發現選擇的兩種分詞模式已經滿足自己項目的使用,還未進行更深入的了解,后續會繼續了解底層及分詞原理,如有瑕疵或更好的見解,希望可以交流學習。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM