前言
剛開始接觸ElasticSearch的時候,版本才是2.3.4,短短的時間,現在都更新到5.0+版本了。分詞和head外掛好像用法也不一樣了,本部落格記錄如何配置Elasticsearch的Head外掛和使用ik分詞並進行熱更新。
實踐記錄
首先安裝ES5.3.2版本,之前安裝了5.4版本,奈何分詞版本只更新到5.3.2,於是又換回了5.3.2的版本,不過沒關係。ik分詞也會更新。由於Head外掛不和以前的用法一樣,所以,這裡記錄一下如何在5.0版本以後使用Head外掛。
可參考文章 http://blog.csdn.net/yx1214442120/article/details/55102298
安裝nodejs環境,安裝grunt,安裝好grunt之後,要在elasticsearch.yml中增加配置:
http.cors.enabled: true http.cors.allow-origin: "*"
其他配置修改,參考上文連結中的內容。我們先用grunt server命令執行head外掛
在瀏覽器中開啟該地址可以看到相應的管理介面:
安裝IK分詞很簡單,從該地址(https://github.com/medcl/elasticsearch-analysis-ik/releases)下載相對應的版本即可,可以直接將下載後的原始碼生成的jar包,放在plugins/ik/下。
ik分詞的配置中是可以遠端載入詞庫的,此時新建一個web專案代表遠端詞庫,例如我的詞庫地址為:
修改ik分詞的配置即可,配置檔案路徑:D:\ElasticSearch\plugins\ik\config
當我們啟動ES的時候會看到相應的日誌記錄,如下:
這個遠端詞庫,IK會定期檢查,如果變化,會重新載入。由於漢字中是亂碼,所以,我新加一個英文的詞newword。可以看到,已經重新載入了遠端詞庫。
下面測試一下分詞效果 http://localhost:9200/cnblogs1/_analyze?analyzer=ik_smart&text=侯亮平,遠端詞庫中沒有【侯亮平】,此時解析出是這樣的:
由於詞庫是延遲更新的,所以新增完詞之後,不會立馬變化。等一會,重新載入之後可以看分詞效果:
這樣我們的詞庫熱更新就完成啦。小夥伴們趕緊去試試吧。