前言
剛開始接觸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=侯亮平,遠程詞庫中沒有【侯亮平】,此時解析出是這樣的:
由於詞庫是延遲更新的,所以添加完詞之后,不會立馬變化。等一會,重新加載之后可以看分詞效果:
這樣我們的詞庫熱更新就完成啦。小伙伴們趕緊去試試吧。