Elasticsearch (ES) 學習之路三 IK 分詞器安裝與使用
IK分詞器在是一款 基於詞典和規則 的中文分詞器,如果項目所做業務爲國內業務 那麼使用IK分詞器 即可滿足大部分 分詞場景
IK 分詞安裝(Win)
解壓上文中下載的IK 分詞器壓縮包 解壓到 es 安裝目錄下的 plugins 下 新建 ik 目錄
解壓後 ,從起ES,查看是否讀取插件
kibanna 中 使用
IK 分詞器兩種分詞算法
ik_smart
最少切分算法
當前切分 算法爲最少切分法 何爲最少切分呢,即按照其自身詞典,儘可能的減少切分次數(即分詞不會非常詳細)進項分詞 ,不會出現 一個字多個詞使用的情況下 例如 成都市 最少切分可能爲 成都、市 或者成都市 一個詞
ik_max_word
最細粒度切分算法
當前切分方法 爲最細粒度切分 ,會根據其字典 盡最大可能切分 切分的非常詳細 例如 切分 成都市 可能切分出 成都、都市、市等幾個詞
從上邊 即可簡單的理解 何爲最少切分和 最細粒度切分
但是,我們也會發現一些問題,無論我是使用了最少切分還是最細粒度切分 我的"南城都匯都被拆開了" (此爲我小區名)那我要是以南城都匯查詢豈不是查不到了???那這時候怎麼辦呢??
首先,咱們還是得分析出現此問題的原因
前邊也說了,其分詞是基於自身的一個詞典 進行分詞的,出現此情況原因在於 ‘南城都匯’ 這個詞,我們的詞典沒有,所以不會吧這幾個字切分爲詞,
那麼我們是不是可以根據一些業務場景自定義詞典呢?
答案是:當然可以!
IK 分詞器 自定義詞典
進入咱們的es plugins 下 進入ik分詞器 目錄,發現其配置文件中 ,說明了用戶是可以自定義詞典的!
IK 分詞的核心 也是分詞依據 根據詞典中的字 進行分詞!
那麼我們按着此模式,也新建一個詞典 隨意取名.dic
例如我定義一個詞典 cd.dic 在其中輸入我業務場景所用的南城都匯
在修改我們的配置文件 加入我們的自定義詞典
從起es 測試 南城都匯 是否會分爲一個完整的詞彙
發現是可以的 那麼說明,咱們自定義詞典也完成了
目前IK 分詞的基礎使用就到這裏,後續在項目中使用!!!