Elasticsearch (ES) 學習之路(三) IK 分詞器安裝與使用自定義詞典

Elasticsearch (ES) 學習之路三 IK 分詞器安裝與使用

IK分詞器在是一款 基於詞典和規則 的中文分詞器,如果項目所做業務爲國內業務 那麼使用IK分詞器 即可滿足大部分 分詞場景

IK 分詞安裝(Win)

解壓上文中下載的IK 分詞器壓縮包 解壓到 es 安裝目錄下的 plugins 下 新建 ik 目錄

image-20200627173011026

解壓後 ,從起ES,查看是否讀取插件

image-20200627173133706

kibanna 中 使用

image-20200627173312018

IK 分詞器兩種分詞算法

ik_smart

最少切分算法

當前切分 算法爲最少切分法 何爲最少切分呢,即按照其自身詞典,儘可能的減少切分次數(即分詞不會非常詳細)進項分詞 ,不會出現 一個字多個詞使用的情況下 例如 成都市 最少切分可能爲 成都、市 或者成都市 一個詞

image-20200627173747810

ik_max_word

最細粒度切分算法

當前切分方法 爲最細粒度切分 ,會根據其字典 盡最大可能切分 切分的非常詳細 例如 切分 成都市 可能切分出 成都、都市、市等幾個詞

image-20200627174155593

從上邊 即可簡單的理解 何爲最少切分和 最細粒度切分

但是,我們也會發現一些問題,無論我是使用了最少切分還是最細粒度切分 我的"南城都匯都被拆開了" (此爲我小區名)那我要是以南城都匯查詢豈不是查不到了???那這時候怎麼辦呢??

首先,咱們還是得分析出現此問題的原因

前邊也說了,其分詞是基於自身的一個詞典 進行分詞的,出現此情況原因在於 ‘南城都匯’ 這個詞,我們的詞典沒有,所以不會吧這幾個字切分爲詞,

那麼我們是不是可以根據一些業務場景自定義詞典呢?

答案是:當然可以!

IK 分詞器 自定義詞典

進入咱們的es plugins 下 進入ik分詞器 目錄,發現其配置文件中 ,說明了用戶是可以自定義詞典的!

image-20200627175013273

image-20200627175123333


IK 分詞的核心 也是分詞依據 根據詞典中的字 進行分詞

image-20200627175157187

那麼我們按着此模式,也新建一個詞典 隨意取名.dic

例如我定義一個詞典 cd.dic 在其中輸入我業務場景所用的南城都匯

image-20200627175454063

在修改我們的配置文件 加入我們的自定義詞典

image-20200627175543019

從起es 測試 南城都匯 是否會分爲一個完整的詞彙

image-20200627175733647

發現是可以的 那麼說明,咱們自定義詞典也完成了

目前IK 分詞的基礎使用就到這裏,後續在項目中使用!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章