當前位置:編程學習大全網 - 源碼下載 - 如何讀取elasticsearch的分詞索引信息

如何讀取elasticsearch的分詞索引信息

壹、插件準備

網上有介紹說可以直接用plugin -install medcl/elasticsearch-analysis-ik的辦法,但是我執行下來的效果只是將插件的源碼下載下來,elasticsearch只是將其作為壹個_site插件看待。

所以只有執行maven並將打包後的jar文件拷貝到上級目錄。(否則在定義mapping的analyzer的時候會提示找不到類的錯誤)。

由於IK是基於字典的分詞,所以還要下載IK的字典文件,在medcl的elasticsearch-RTF中有,可以通過這個地址下載:

/downloads/medcl/elasticsearch-analysis-ik/ik.zip

下載之後解壓縮到config目錄下。到這裏,妳可能需要重新啟動下elasticsearch,好讓下壹部定義的分詞器能立即生效。

二、分詞定義

分詞插件準備好之後就可以在elasticsearch裏定義(聲明)這個分詞類型了(自帶的幾個類型,比如standred則不需要特別定義)。跟其他設置壹樣,分詞的定義也可以在系統級(elasticsearch全局範圍),也可以在索引級(只在當前index內部可見)。系統級的定義當然是指在conf目錄下的

elasticsearch.yml文件裏定義,內容大致如下:

index:

analysis:

analyzer:

ikAnalyzer:

alias: [ik]

type: org.elasticsearch.index.analysis.IkAnalyzerProvider

或者 index.analysis.analyzer.ik.type : "ik"

因為個人喜好,我並沒有這麽做, 而是定義在了需要使用中文分詞的index中,這樣定義更靈活,也不會影響其他index。

在定義analyze之前,先關閉index。其實並不需要關閉也可以生效,但是為了數據壹致性考慮,還是先執行關閉。(如果是線上的系統需要三思)

curl -XPOST /medcl/elasticsearch-analysis-ik,下載分詞器源碼,然後進入下載目錄,執行命令:mvn clean package,打包生成elasticsearch-analysis-ik-1.2.5.jar。將這個jar拷貝到ES_HOME/plugins/analysis-ik目錄下面,如果沒有該目錄,則先創建該目錄。

2、ik目錄拷貝

將下載目錄中的ik目錄拷貝到ES_HOME/config目錄下面。

3、分詞器配置

打開ES_HOME/config/elasticsearch.yml文件,在文件最後加入如下內容:

index:

analysis:

analyzer:

ik:

alias: [ik_analyzer]

type: org.elasticsearch.index.analysis.IkAnalyzerProvider

ik_max_word:

type: ik

use_smart: false

ik_smart:

type: ik

use_smart: true

index.analysis.analyzer.default.type: ik

ok!插件安裝已經完成,請重新啟動ES,接下來測試ik分詞效果啦!

三、ik分詞測試

1、創建壹個索引,名為index。

curl -XPUT http://localhost:9200/index

2、為索引index創建mapping。

curl -XPOST http://localhost:9200/index/fulltext/_mapping -d'

{

"fulltext": {

"_all": {

"analyzer": "ik"

},

"properties": {

"content": {

"type" : "string",

"boost" : 8.0,

"term_vector" : "with_positions_offsets",

"analyzer" : "ik",

"include_in_all" : true

}

}

}

}'

3、測試

curl 'http://localhost:9200/index/_analyze?analyzer=ik&pretty=true' -d '

{

"text":"世界如此之大"

}'

顯示結果如下:

{

"tokens" : [ {

"token" : "text",

"start_offset" : 4,

"end_offset" : 8,

"type" : "ENGLISH",

"position" : 1

}, {

"token" : "世界",

"start_offset" : 11,

"end_offset" : 13,

"type" : "CN_WORD",

"position" : 2

}, {

"token" : "如此",

"start_offset" : 13,

"end_offset" : 15,

"type" : "CN_WORD",

"position" : 3

}, {

"token" : "之大",

"start_offset" : 15,

"end_offset" : 17,

"type" : "CN_WORD",

"position" : 4

} ]

}

  • 上一篇:天門狐仙峽谷大劇場在哪裏
  • 下一篇:C語言求教
  • copyright 2024編程學習大全網