Elasticsearch的分詞

ES在創(chuàng)建倒排索引時(shí)需要對(duì)文檔分詞;在搜索時(shí),需要對(duì)用戶輸入內(nèi)容分詞。但默認(rèn)的分詞規(guī)則對(duì)中文處理并不友好。處理中文分詞,一般會(huì)使用IK分詞器。

ik分詞器安裝

  1. 點(diǎn)擊下載
  2. 進(jìn)入elasticsearch-7.15.0\plugins目錄,新建ik文件夾,把下載文件解壓進(jìn)去
  3. 重啟ES

重啟時(shí)遇到ik和ES版本不一致的錯(cuò)誤:

Plugin [analysis-ik] was built for Elasticsearch version 7.14.2 but version 7.15.0 is running

修改ik分詞器的默認(rèn)ES版本
打開elasticsearch-7.15.0\plugins\ik\plugin-descriptor.properties文件

修改成es對(duì)應(yīng)的版本
elasticsearch.version=7.15.0

ik分詞器包含兩種模式

  • ik_smart:最少切分,粗粒度
  • ik_max_word:最細(xì)切分,細(xì)粒度
POST /_analyze
{
  "analyzer": "ik_smart",
  "text": "我是中國(guó)人"
}

使用ik_samrt分詞,中國(guó)人劃分為一個(gè)分詞

{
  "tokens" : [
    {
      "token" : "我",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0
    },
    {
      "token" : "是",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "CN_CHAR",
      "position" : 1
    },
    {
      "token" : "中國(guó)人",
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2
    }
  ]
}

ik分詞拓展

要拓展ik分詞器的詞庫(kù),只需要修改一個(gè)ik分詞器目錄中的config目錄中的IkAnalyzer.cfg.xml文件:

<comment>IK Analyzer 擴(kuò)展配置</comment>
<!--用戶可以在這里配置自己的擴(kuò)展字典 -->
<entry key="ext_dict">ext.dic</entry>
<!--用戶可以在這里配置自己的擴(kuò)展停止詞字典-->
<entry key="ext_stopwords">stopword.dic</entry>

elasticsearch-7.15.0\plugins\ik\config目錄

  1. 新增ext.dic加入分詞內(nèi)容
    例如:豪弘集團(tuán)
  2. 新增stopword.dic加入過(guò)濾分詞
    例如:視察
  3. 重啟ES
    請(qǐng)求
POST _analyze
{
  "analyzer": "ik_smart",
  "text": "視察豪弘集團(tuán)"
}

加入分詞后的響應(yīng)

{
  "tokens" : [
    {
      "token" : "豪弘集團(tuán)",
      "start_offset" : 5,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 3
    }
  ]
}

當(dāng)我們添加了擴(kuò)展分詞,豪弘集團(tuán),變成了一個(gè)分詞;視察沒了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容