ElasticSearch-ik分詞器
IK分詞器安裝使用
下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
下載對應版本即可:
安裝:
下載箭頭中的壓縮包就行了,下載之后解壓到elasticsearch的plugins的一個文件夾ik(ik文件夾自己創建,可以隨意命名,不可用中文名和特殊字符),然后重啟elasticsearch生效。
重啟ElasticSearch:
ik分詞器解釋
分詞:
即把一段中文或者別的划分成一個個的關鍵字,我們在搜索時候會把自己的信息進行分詞,會把數據庫中或者索引庫中的數據進行分詞,然后進行一個匹配操作,默認的中文分詞是將每個字看成一個詞。比如“我愛狂神”會被分為"我",“愛”,“狂”,“神” ,這顯然是不符合要求的,所以我們需要安裝
中文分詞器ik
來解決這個問題。
IK提供了兩個分詞算法: ik_smart
和ik_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分詞算法將划為一個詞組
-
測試下:
-
先看分詞效果
-
查詢測試下
-