背景
簡單介紹兩個常用插件:
- ES可視化的Web插件:
elasticsearch-head
- 中文分詞友好的分詞器:
elasticsearch-analysis-ik
先跑起來再說。
elasticsearch-head
- 在
Github
上搜索下載安裝elasticsearch-head
,並解壓; - 安裝依賴:
npm install
; - 啓動:
npm run start
,訪問 http://localhost:9100。
- Problem:
若未配置ElasticSearch的跨域,此時訪問http://localhost:9100
報錯:
已攔截跨源請求:同源策略禁止讀取位於 http://localhost:9200/_all 的遠程資源。(原因:CORS 頭缺少 ‘Access-Control-Allow-Origin’)。
- Solution:
開啓ES跨域:編輯配置文件config/elasticsearch.yml
,在最後添加
http.cors.enabled: true
http.cors.allow-origin: "*"
重新啓動ES,再次訪問http://localhost:9100
,點擊連接,結果如下圖所示,可以看到當前有兩個索引。
elasticsearch-head
,作爲ES的數據可視化客戶端,主要的幾個菜單包括:概覽、索引、數據瀏覽、基本查詢、符合查詢等。在上一篇文章中,我們用到了數據瀏覽下的索引查看功能。
elasticsearch-analysis-ik
- ES自帶的分詞器
ES內置的分詞器有:standard, simple, whitespace, stop, language等,這種外國人搞的,對英文的支持自不必說,看個例子吧:
但是,當遇到中文時,懵逼了。。
- 第三方:ik分詞器
- 下載
在Github
上搜索中文分詞器:elasticsearch-analysis-ik
,這裏用的版本與ES版本一致:7.5.2。
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.2/elasticsearch-analysis-ik-7.5.2.zip
- 安裝
解壓至elasticsearch-7.5.2\plugins\ik
目錄,ik
這個目錄可以自定義名稱,不用配置其他的文件,重啓ES。
記得重啓ES,如果沒有重啓,則會報錯:
下圖爲重啓後,控制檯的輸出,可以看到加載了ik分詞器:
- 測試
- 中文
- 中英文
- 分詞模式
ik 提供了兩種分詞模式:ik_smart
, ik_max_word
,前面例子用的都是ik_smart
。
- ik_smart:最小切分
- ik_max_word:最細切分
顯然,可看到兩種方式的區別。
- 自定義分詞
以“新冠病毒肺炎”爲例,我想讓分詞器將新冠
作爲一個詞,由於ik分詞器本身的詞庫中未錄入這個詞,我們在前面也看到了,ik分詞器會將新冠
作爲兩個字來處理;那麼,這裏手動錄入這個詞條。
添加詞條(elasticsearch-7.5.2\plugins\ik\config):這裏直接寫在了main.dic中。
看下加入自定義詞條後的分詞效果:
新冠
成功分爲一個詞,而不是前面新
,冠
兩個字。
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!