網上有介紹說可以直接使用plugin-installmedcl/elasticsearch-analysis-ik的方法,但是我實現的效果只是下載了插件的源代碼,elastic search只把它當作_site插件。
所以我們必須執行maven,將打包的jar文件復制到上級目錄。(否則,在定義映射的分析器時,會提示找不到該類。).
因為IK是基於詞典的分詞,所以需要下載IK的詞典文件,在medcl的elasticsearch-RTF中有,可以在這個地址下載:
/downloads/med cl/elastic search-analysis-ik/ik . zip
下載後,將其解壓縮到config目錄。此時,您可能需要重新啟動elasticsearch,以便下壹個定義的斷詞器可以立即生效。
二、分詞的定義
分詞插件準備好之後,就可以在elasticsearch中定義(聲明)這個分詞類型了(自帶的類型,比如standred,不需要專門定義)。和其他設置壹樣,分詞的定義也可以是系統級的(elasticsearch全局範圍),也可以是索引級的(只在當前索引內可見)。當然,系統級的定義是指conf下的目錄。
在elasticsearch.yml文件中定義,內容大致如下:
索引:
分析:
分析器:
ikAnalyzer:
別名:[ik]
類型:org . elastic search . index . analysis . ikanalyzerprovider
或index . analysis . analyzer . ik . type:" ik "
因為個人喜好,我沒有這麽做,而是在需要中文分詞的索引中定義,這樣更靈活,不會影響其他索引。
定義分析前關閉索引。其實不需要關閉才能生效,但是為了數據的壹致性,應該先關閉。(如果是線上系統要三思)
curl-xpost/med cl/elastic search-analysis-ik,下載分詞器源代碼,然後進入下載目錄,執行命令:mvn clean package,打包生成elastic search-analysis-ik-1 . 2 . 5 . jar,將這個jar復制到ES_HOME/plugins/analysis-ik目錄下。如果沒有這樣的目錄,首先創建它。
2、ik目錄復制
將下載目錄中的ik目錄復制到ES_HOME/config目錄中。
3、分詞系統配置
打開文件es _ home/config/elastic search . yml,在文件末尾添加以下內容:
索引:
分析:
分析器:
ik:
別名:[ik_analyzer]
類型:org . elastic search . index . analysis . ikanalyzerprovider
ik_max_word:
類型:ik
use_smart: false
ik_smart:
類型:ik
use_smart: true
或者
index . analysis . analyzer . default . type:ik
好吧!插件安裝已完成,請重啟ES,然後測試ik分詞效果!
三。ik分詞測試
1.創建名為index的索引。
curl-XPUT http://localhost:9200/index
2.為索引索引創建映射。
curl-XPOST http://localhost:9200/index/full text/_ mapping-d '
{
"全文":{
" _all": {
“分析器”:“ik”
},
"屬性":{
"內容":{
"類型":"字符串",
【助推】:8.0,
" term _ vector ":" with _ positions _ offsets ",
“分析器”:“ik”,
" include_in_all ":真
}
}
}
}'
3.試驗
curl ' http://localhost:9200/index/_ analyze?分析器= ik & amppretty=true' -d '
{
《正文》:“世界那麽大”
}'
顯示結果如下:
{
"令牌":[ {
“令牌”:“文本”,
" start_offset" : 4,
" end_offset" : 8,
【類型】:“英語”,
【位置】:1
}, {
《令牌》:“天下”,
" start_offset" : 11,
" end_offset" : 13,
" type" : "CN_WORD ",
【位置】:2
}, {
“令牌”:“所以”,
" start_offset" : 13,
" end_offset" : 15,
" type" : "CN_WORD ",
【位置】:3
}, {
“令牌”:“太好了”,
" start_offset" : 15,
" end_offset" : 17,
" type" : "CN_WORD ",
【位置】:4
} ]
}