Elasticsearch集成IK中文分詞器

一、安裝ik分詞器

IK分詞器 Github 地址:https://github.com/medcl/elas...

因爲我安裝的 Elasticsearch 是5.6.9版本,所以對應安裝 elasticsearch-analysis-ik-5.6.9 版本

$ ./bin/elasticsearch-plugin install http://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.9/elasticsearch-analysis-ik-5.6.9.zip

或者自己下載解壓安裝到your-es-root/plugins/下,然後重啓elasticsearch

$ cp /mnt/hgfs/elasticsearch-analysis-ik-5.6.9/elasticsearch/ /opt/elasticsearch-5.6.9/plugins/ -r

啓動過程中會打印日誌loaded plugin [analysis-ik]

[2018-06-15T09:30:34,671][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [aggs-matrix-stats]
[2018-06-15T09:30:34,671][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [ingest-common]
[2018-06-15T09:30:34,671][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [lang-expression]
[2018-06-15T09:30:34,671][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [lang-groovy]
[2018-06-15T09:30:34,671][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [lang-mustache]
[2018-06-15T09:30:34,671][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [lang-painless]
[2018-06-15T09:30:34,671][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [parent-join]
[2018-06-15T09:30:34,671][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [percolator]
[2018-06-15T09:30:34,671][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [reindex]
[2018-06-15T09:30:34,672][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [transport-netty3]
[2018-06-15T09:30:34,672][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded module [transport-netty4]
[2018-06-15T09:30:34,672][INFO ][o.e.p.PluginsService     ] [_JHOtaZ] loaded plugin [analysis-ik] # 出現這行,則說明加載ik分詞器插件成功
[2018-06-15T09:30:37,398][INFO ][o.e.d.DiscoveryModule    ] [_JHOtaZ] using discovery type [zen]
[2018-06-15T09:30:38,365][INFO ][o.e.n.Node               ] initialized
[2018-06-15T09:30:38,365][INFO ][o.e.n.Node               ] [_JHOtaZ] starting ...

重啓

$ jps #查看pid
$ kill pid
$ ./bin/elasticsearch -d # 後臺運行

二、使用

教程:http://keenwon.com/1404.html

elasticsearch內置分詞器:

  1. standard (標準分詞器):無腦的一個一個詞(漢字)切分,所以適用範圍廣,但是精準度低。
  2. english (英文分詞):對英文更加智能,可以識別單數負數,大小寫,過濾stopwords(例如“the”這個詞)等。
  3. chinese (中文分詞):效果很差。

1. 驗證分詞效果 _analyze

ik的兩種分詞方式

  1. ik_max_word
    會將文本做最細粒度的拆分,比如會將“中華人民共和國國歌”拆分爲“中華人民共和國,中華人民,中華,華人,人民共和國,人民,人,民,共和國,共和,和,國國,國歌”,會窮盡各種可能的組合;
  2. ik_smart
    會做最粗粒度的拆分,比如會將“中華人民共和國國歌”拆分爲“中華人民共和國,國歌”。
# 新建test索引
$ curl -XPUT 'http://127.0.0.1:9200/test'

# 驗證 ik_max_word 的分詞效果
$ curl 'http://127.0.0.1:9200/test/_analyze?analyzer=ik_max_word&pretty=true' -d '{"text":"中華人民共和國"}'

# 驗證 ik_smart 的分詞效果
$ curl 'http://127.0.0.1:9200/test/_analyze?analyzer=ik_smart&pretty=true' -d '{"text":"中華人民共和國"}'

2. 待更新...

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