Elasticsearch 1.X 安裝中文分詞 plugin ik
使用 ik 去拆解「一個澳門人」 |
注意:以下是 elasticsearch 1.X 的方法,2.X 版這按這裏。
首先,我先重新一次這篇只包括不使用rtf版、只在原廠版的 elasticsearch 1.X 中安裝 ik 方法。使用ik方法可以看原本的 github,或者上網找,因為真的有很多。
那,為甚麼要寫這篇只有安裝的教學文呢?因為,網上很多教學的安裝方法或者是不完整,或者是錯誤的,例如叫你直接用 plugin 去安裝,但你最後只會收到這個錯誤:
(不要學!)
sudo ./plugin -install medcl/elasticsearch-analysis-ik
…
Message:
Error while installing plugin, reason: IllegalArgumentException: Plugin installation assumed to be site plugin, but contains source code, aborting installation.
因此,大家不要再和我一起重覆上面這個錯誤方法了。
一直找其他方法,但原來真的可以不用那麼麻煩,既然rtf版已經處理好了,而且還有繁體中文支援,那麼,一切是可以這麼的簡單:
- 首先,下載rtf版,解壓。
- 複製config和ik的jar檔,在 ubuntu 或 centos 中:
- 在 /usr/share/elasticsearch/plugins/ 中,把 elasticsearch-rtf/plugins/analysis-ik 複製過去
- 在 /etc/elasticsearch 中,把 elasticsearch-rtf/config/ik/ 複製過去 - 修改 elasticsearch.yml (在 ubuntu 或 centos 中是 /etc/elasticsearch/elasticsearch.yml),增加這些config,可以加在最底
index: analysis: analyzer: ik: alias: [news_analyzer_ik,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"
- restart elasticsearch
PS:這樣 analyzer 可以使用 ik、ik_max_word 兩種方法,其中 ik 是盡量組合成一個詞(例如「澳門人」就是「澳門人」,不會拆成「澳門」、「門人」、「澳門人」),而 ik_max_word 則是可以拆就盡量拆,大家可以按自己需要,自行選擇最適合方法。
使用 ik_max_word 去拆解「一個澳門人」,多出很多組合 |
留言
張貼留言