ik分詞器

ik分詞器

來源 :ES默認的分詞器是認為母語為英語鞍盗,英語的書寫格式是按照空格為詞津肛,并且連詞為AND THIS OR...嫉戚,中文的一句話是沒有空格的棒呛,中國文化博大精深連詞都不止其他語言的那么幾個唬滑,這就要有一個強大的中文詞庫饺鹃,當你的內(nèi)容中出現(xiàn)這個詞時,就會將這個詞提煉出來间雀。這里大家也不用重復(fù)造輪子悔详,經(jīng)過前輩的努力,這個中文的分詞器已經(jīng)有了惹挟,它就是今天要給大家介紹的IK中文分詞器

安裝

ES是默認沒有安裝ik分詞器的茄螃,如果工作中用的是阿里云服務(wù)的elasticsearch的話是會默認安裝,這里僅供自身學(xué)習(xí)连锯,所以可以在對應(yīng)GitHub上下載對應(yīng)的ik分詞器 :https://github.com/medcl/elasticsearch-analysis-ik/releases
附上另一博主的網(wǎng)盤归苍,有es7.6.1全家桶 https://blog.csdn.net/qq_42359314/article/details/105670912

下載完畢之后在es項目的${ES_HOME}/plugins創(chuàng)建文件名為ik的目錄用狱,隨后將zip解壓至該文件中
重啟es,觀察日志:

loaded plugin [analysis-ik]`
[2020-11-10T00:11:00,351][INFO ][o.w.a.d.Monitor          ] [DESKTOP-FE6V42L] try load config from G:\elasticsearch\elasticsearch-7.6.1\config\analysis-ik\IKAnalyzer.cfg.xml
[2020-11-10T00:11:00,359][INFO ][o.w.a.d.Monitor          ] [DESKTOP-FE6V42L] try load config from G:\elasticsearch\elasticsearch-7.6.1\plugins\ik\config\IKAnalyzer.cfg.xml

那么es已經(jīng)加載了上了ik分詞器

使用

先介紹一下ES的分析器接口拼弃,指定了分析器和文本的內(nèi)容夏伊,我們就可以看到分詞的結(jié)果

GET _analyze
{
 "analyzer": {分析器名稱},
 "text": {要被分詞的文檔}
}

結(jié)果

IK中文分詞器插件給我們提供了兩個分析器

  • ik_max_word: 會將文本做最細粒度的拆分
  • ik_smart:會做最粗粒度的拆分
    分別看下各自的效果

對應(yīng)的 ik_smart就分的比較粗了,只是大致的拆分了文本

GET _analyze
{
  "analyzer": "ik_smart",
  "text": "上海自來水來自海上"
}

結(jié)果:
{
  "tokens" : [
    {
      "token" : "上海",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "自來水",
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "來自",
      "start_offset" : 5,
      "end_offset" : 7,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "海上",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 3
    }
  ]
}

我們可以看到吻氧,ik_max_word分詞分的非常細溺忧,我們在使用上面的這些進行搜索時,都可以搜索到對應(yīng)的文本

GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "上海自來水來自海上"
}

結(jié)果
{
  "tokens" : [
    {
      "token" : "上海",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "自來水",
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "自來",
      "start_offset" : 2,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "水",
      "start_offset" : 4,
      "end_offset" : 5,
      "type" : "CN_CHAR",
      "position" : 3
    },
    {
      "token" : "來自",
      "start_offset" : 5,
      "end_offset" : 7,
      "type" : "CN_WORD",
      "position" : 4
    },
    {
      "token" : "海上",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 5
    }
  ]
}

配置

同樣盯孙,如果我們用ik分析器來分析 簡書就會發(fā)現(xiàn)鲁森,本應(yīng)該是一個名字的文本,被分詞器分析成兩個字

GET _analyze
{
 "analyzer": "ik_smart",
 "text": "簡書"
}

GET _analyze
{
 "analyzer": "ik_max_word",
 "text": "簡書"
}

同樣的返回結(jié)果

{
 "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
   }
 ]
}

但是在日常工作中我們有許多的業(yè)務(wù)名詞振惰,我們不期望使用es搜索的時候被ik分詞器拆分成單個漢字歌溉,這時候我們就需要來配置ik分詞器的字典:
配置項如下: ${ES_HOME}\plugins\ik\config\IKAnalyzer.cfg.xml

<properties>
    <comment>IK Analyzer 擴展配置</comment>
    <!--用戶可以在這里配置自己的擴展字典 -->
    <entry key="ext_dict"></entry>
     <!--用戶可以在這里配置自己的擴展停止詞字典-->
    <entry key="ext_stopwords"></entry>
    <!--用戶可以在這里配置遠程擴展字典 -->
    <!-- <entry key="remote_ext_dict">words_location</entry> -->
    <!--用戶可以在這里配置遠程擴展停止詞字典-->
    <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
  • 字典 :擴展字典中的詞會被篩選出來
  • 停止詞字典 :擴展停止詞中的詞會被過濾掉

即可以在\IKAnalyzer.cfg.xml的相對目錄下新建對應(yīng)的定制字典 如biz.dic
一定要注意dic的編碼格式

簡書
我是簡書
博主

配置進xml中<entry key="ext_dict">biz.dic</entry> 重啟es生效,隨后就會看到文本的分詞不一樣了
被加載:
[2020-11-10T00:49:27,608][INFO ][o.w.a.d.Monitor ] [DESKTOP-FE6V42L] [Dict Loading] G:\elasticsearch\elasticsearch-7.6.1\plugins\ik\config\biz.dic
輸出的結(jié)果:

{
  "tokens" : [
    {
      "token" : "簡書",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 0
    }
  ]
}

創(chuàng)建索引時指定IK分詞器

我們在創(chuàng)建索引時就可以為text類型的字段指定IK中文分詞器了

PUT ik_index
{
    "mappings": {
        "properties": {
            "id": {
                "type": "long"
            },
            "title": {
                "type": "text",
                "analyzer": "ik_max_word"
            }
        }
    }
}

為索引指定默認IK分詞器

PUT ik_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "default": {
          "type": "ik_max_word"
        }
      }
    }
  }
}

以上就是個人理解整理的ik分詞器內(nèi)容
附上精彩文章:
[ik分詞器詞典加載原理] (http://www.reibang.com/p/e7f80fda5dd4?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骑晶,一起剝皮案震驚了整個濱河市痛垛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌桶蛔,老刑警劉巖匙头,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異羽圃,居然都是意外死亡,警方通過查閱死者的電腦和手機抖剿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門朽寞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人斩郎,你說我怎么就攤上這事脑融。” “怎么了缩宜?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵肘迎,是天一觀的道長。 經(jīng)常有香客問我锻煌,道長妓布,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任宋梧,我火速辦了婚禮匣沼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捂龄。我一直安慰自己释涛,他們只是感情好加叁,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著唇撬,像睡著了一般它匕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窖认,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天豫柬,我揣著相機與錄音,去河邊找鬼耀态。 笑死轮傍,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的首装。 我是一名探鬼主播创夜,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼仙逻!你這毒婦竟也來了驰吓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤系奉,失蹤者是張志新(化名)和其女友劉穎檬贰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缺亮,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡翁涤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了萌踱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葵礼。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖并鸵,靈堂內(nèi)的尸體忽然破棺而出鸳粉,到底是詐尸還是另有隱情,我是刑警寧澤园担,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布届谈,位于F島的核電站,受9級特大地震影響弯汰,放射性物質(zhì)發(fā)生泄漏艰山。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一咏闪、第九天 我趴在偏房一處隱蔽的房頂上張望程剥。 院中可真熱鬧,春花似錦、人聲如沸织鲸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搂擦。三九已至稳诚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瀑踢,已是汗流浹背扳还。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留橱夭,地道東北人氨距。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像棘劣,于是被迫代替她去往敵國和親俏让。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容