ElasticSearch入門(四)常用插件:Head插件與ik分詞器

背景

簡單介紹兩個常用插件:

  1. ES可視化的Web插件:elasticsearch-head
  2. 中文分詞友好的分詞器:elasticsearch-analysis-ik

先跑起來再說。

elasticsearch-head

  1. Github上搜索下載安裝elasticsearch-head,並解壓;
  2. 安裝依賴:npm install
  3. 啓動: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,點擊連接,結果如下圖所示,可以看到當前有兩個索引。

2020-04-17-ES-Head.png

elasticsearch-head,作爲ES的數據可視化客戶端,主要的幾個菜單包括:概覽、索引、數據瀏覽、基本查詢、符合查詢等。在上一篇文章中,我們用到了數據瀏覽下的索引查看功能。

elasticsearch-analysis-ik

  • ES自帶的分詞器

ES內置的分詞器有:standard, simple, whitespace, stop, language等,這種外國人搞的,對英文的支持自不必說,看個例子吧:

2020-04-17-ES-English.png

但是,當遇到中文時,懵逼了。。

2020-04-17-ES-Chinese.png

  • 第三方:ik分詞器
  1. 下載

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

  1. 安裝

解壓至elasticsearch-7.5.2\plugins\ik目錄,ik這個目錄可以自定義名稱,不用配置其他的文件,重啓ES

記得重啓ES,如果沒有重啓,則會報錯:

2020-04-17-ES-Error.png

下圖爲重啓後,控制檯的輸出,可以看到加載了ik分詞器:

2020-04-17-ES-Restart.png

  1. 測試
  • 中文

2020-04-17-ES-Chinese-ik.png

  • 中英文

2020-04-17-ES-Ch-En-ik.png

  1. 分詞模式

ik 提供了兩種分詞模式:ik_smart, ik_max_word,前面例子用的都是ik_smart

  • ik_smart:最小切分

2020-04-17-ES-ik-smart.png

  • ik_max_word:最細切分

2020-04-17-ES-ik-max-word.png

顯然,可看到兩種方式的區別。

  1. 自定義分詞

以“新冠病毒肺炎”爲例,我想讓分詞器將新冠作爲一個詞,由於ik分詞器本身的詞庫中未錄入這個詞,我們在前面也看到了,ik分詞器會將新冠作爲兩個字來處理;那麼,這裏手動錄入這個詞條。

添加詞條(elasticsearch-7.5.2\plugins\ik\config):這裏直接寫在了main.dic中。

2020-04-17-ES-ik-Dic.png

看下加入自定義詞條後的分詞效果:

2020-04-17-ES-ik-Custom.png

新冠成功分爲一個詞,而不是前面兩個字。


If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章