1. 程式人生 > >ElasticSearch5.0——中文分詞外掛IK安裝

ElasticSearch5.0——中文分詞外掛IK安裝

小知識:

ElasticSearch預設分詞器的配置。已知ES預設的分詞器是標準分詞器Standard。如果需要修改預設分詞器可以做如下設定:

 在配置檔案config/elasticsearch.yml中新增  index.anlysis.analyzer.default.type:ik。

當然在ik5.0.0中還是有些許的變化

IK5.0.0:移除名為ik的analyzer和tokenizer,修改為 ik_smart 和 ik_max_word Analyzer: ik_smart , ik_max_word , Tokenizer: ik_smart , ik_max_word 所以在配置是ik是無效的,需要配置為 ik_smart ,或者是 ik_max_word。
其中 ik_smart 為最少切分,ik_max_word為最細粒度劃分。

elasticsearch-analysis-ik-5.0.0的安裝步驟

1.下載elasticsearch-analysis-ik-5.0.0的安裝包

從中選擇適合的IK版本,需要和安裝的ES版本一致。 版本對照表:
IK-ES版本對照表
IK version ES version
master 5.x-master
5.1.1 5.1.1
1.10.1
2.4.1
1.9.5
2.3.5
1.8.1
2.2.1
1.7.0 2.1.1
1.5.0 2.0.0
1.2.6 1.0.0
1.2.5 0.90.x
本文前提是已經安裝ElasticSearch5.0.0版本 所以需要下載對應的 IK版本為5.0.0


下載時間有點長,下載完成之後得到

elasticsearch-analysis-ik-5.0.0.zip的壓縮包,解壓縮。 檢視pom.xml中ES的版本是否與實際相符,如果版本跨度比較小的話可以直接修改,否則就需要重新下載對應版本的。

2.編譯 IK5.0.0

如果下載的 是編譯好的,則直接拷貝

否則的話需要安裝maven工具,進行編譯,如果未安裝請檢視Maven——Windows安裝步驟

這裡就不做詳細介紹

首先開啟命令窗體,然後進入解壓的ik目錄下面

cd: C:\elasticsearch-analysis-ik-5.0.0

然後執行命令: mvn package 進行編譯

編譯成功的結果如下:


打包之後,會在elasticsearch-analysis-ik-5.0.0中多了一個資料夾tagert

其目錄結構如下:

├─config
├─src
└─target
    ├─archive-tmp
    ├─classes
    ├─generated-sources
    ├─maven-archiver
    ├─maven-status
    ├─releases
    │  └─elasticsearch-analysis-ik-5.0.0.zip
    └─surefire
複製target/releases/elasticsearch-analysis-ik-5.0.0.zip to your-es-root/plugins/ik

編譯好的直接複製到your-es-root/plugins/ik目錄下即可

3.重啟Elasticsearch

4.檢測IK分詞器能否正常使用

開啟kibana 使用其中的工具執行如下命令

GET _analyze
{
  "analyzer":"ik_smart",
  "text":"長春市市長"
}

得到的結果是

{
  "tokens": [
    {
      "token": "長春市",
      "start_offset": 0,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "市長",
      "start_offset": 3,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 1
    }
  ]
}

執行命令

GET _analyze
{
  "analyzer":"ik_max_word",
  "text":"長春市市長"
}

得到的結果是

{
  "tokens": [
    {
      "token": "長春市",
      "start_offset": 0,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "長春",
      "start_offset": 0,
      "end_offset": 2,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "市",
      "start_offset": 2,
      "end_offset": 3,
      "type": "CN_CHAR",
      "position": 2
    },
    {
      "token": "市長",
      "start_offset": 3,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 3
    }
  ]
}
以上就看到IK分詞器已經可以正常使用。

接下來,繼續研究如何配置遠端載入詞庫,以及如何實現詞庫的熱更新。
參考:http://www.cnblogs.com/xing901022/p/5910139.html

2.2.1