ElasticSearch-ik分詞器介紹及使用


ElasticSearch-ik分詞器

IK分詞器安裝使用

下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

下載對應版本即可:

安裝:

下載箭頭中的壓縮包就行了,下載之后解壓到elasticsearch的plugins的一個文件夾ik(ik文件夾自己創建,可以隨意命名,不可用中文名和特殊字符),然后重啟elasticsearch生效。

重啟ElasticSearch:

ik分詞器解釋

分詞:

即把一段中文或者別的划分成一個個的關鍵字,我們在搜索時候會把自己的信息進行分詞,會把數據庫中或者索引庫中的數據進行分詞,然后進行一個匹配操作,默認的中文分詞是將每個字看成一個詞。比如“我愛狂神”會被分為"我",“愛”,“狂”,“神” ,這顯然是不符合要求的,所以我們需要安裝中文分詞器ik來解決這個問題。

IK提供了兩個分詞算法: ik_smartik_max_word

  • ik_smart為最少切分
  • ik_max_word為最細粒度划分:窮盡詞庫的可能

查看不同的分詞效果:

思考:

為什么ik_max_word 分詞器會分出國共這個詞呢?后邊我們會講到字典。

ZGGCD是一個完整的詞:即最少切分

ZGGCD可以拆分成不同的詞:即最細粒度划分

字典

查看conf中的IKAnalyzer.cfg.xml文件

我們寫自己的字典,然后重啟ElasticSearch:

加入自己的字典前后對比:狂神說成為一個關鍵詞。

使用IK分詞器

參考官網:https://github.com/medcl/elasticsearch-analysis-ik

  • 創建index索引,並指定analyzer和search_analyzer
    analyzer和search_analyzer
      在索引時,只會去看字段有沒有定義analyzer,有定義的話就用定義的,沒定義就用ES預設的
      在查詢時,會先去看字段有沒有定義search_analyzer,如果沒有定義,就去看有沒有analyzer,再沒有定義,才會去使用ES預設的
    

  • 准備數據:其中紅色划線部分,smart分詞算法將划為一個詞組

  • 測試下:

    • 先看分詞效果

    • 查詢測試下





免責聲明!

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



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