聊聊 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分詞的瞭解和使用,發現選擇的兩種分詞模式已經知足本身項目的使用,還未進行更深刻的瞭解,後續會繼續瞭解底層及分詞原理,若有瑕疵或更好的看法,但願能夠交流學習。
相關文章
相關標籤/搜索