使用Docker快速安裝部署ES和Kibana並配置IK中文分詞器以及自定義分詞擴充詞庫

嗑嗑磕嗑瓜子的貓發表於2020-10-28

使用Docker快速安裝部署ES和Kibana的前提:首先需要確保已經安裝了Docker環境

如果沒有安裝Docker的話,可以參考上一篇的內容:Linux上安裝Docker

有了Docker環境後,就可以使用Docker安裝部署ES和Kibana了

一、安裝部署ES和Kibana

1、下載ealastic search和kibana(es的視覺化管理頁面)

docker pull elasticsearch:7.6.2
docker pull kibana:7.6.2

2、配置

mkdir -p /mydata/elasticsearch/config 
mkdir -p /mydata/elasticsearch/data 
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml 
chmod -R 777 /mydata/elasticsearch/

3、啟動ES

注意:下邊這個啟動es的命令,一定要設定佔用的記憶體,不設定的話,es一啟動就把虛擬機器的整個記憶體耗盡了,會當機!!!

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v/mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.2

設定開機啟動ES

docker update elasticsearch --restart=always

4、啟動Kibana

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 -d kibana:7.6.2

設定開機啟動Kibana

docker update kibana --restart=always

5、測試

瀏覽器輸入:http://192.168.xx.xx:9200,看到以下頁面說明ES部署成功

瀏覽器輸入:http://192.168.xx.xx:5601,看到以下頁面說明Kibana部署成功

二、配置IK中文分詞器

安裝好ES和Kibana後,進入Kibana操作頁面,使用ES預設的分詞器來試一下,中文的分詞效果

可以看到ES自帶的分詞器,它是簡單的把每個漢字進行了分詞,這肯定不是我們想要的效果

所以,我們需要自己來配置一下對中文分詞支援比較好的IK分詞器

IK分詞器外掛下載:https://pan.baidu.com/s/1Ie2fPooSd8QK8DLNQR-XbA   提取碼:vszn

cd /mydata/elasticsearch/plugins 進入plugins目錄
然後在es的 plugins目錄下
mkdir ik 新建一個名字叫 ik 的資料夾
將下載的ik分詞器外掛壓縮包上傳到ik資料夾下,然後解壓zip 就ok了

最後給一下ik資料夾的許可權 chmod -R 777 /mydata/elasticsearch/plugins/ik

安裝好後,檢查下是否安裝成功了
使用docker exec -it elasticsearch /bin/bash  命令 進入容器內部
進入容器的 cd /usr/share/elasticsearch/bin 目錄
執行 elasticsearch-plugin list 命令(列出es安裝的所有外掛)
如果列出了 ik 就說明es的ik中文分詞器安裝成功了 

裝好ik分詞器後,記得重啟ES容器
docker restart elasticsearch

配置好IK分詞器後,再來用IK分詞器看下效果

可以看到IK分詞器對我們的中文進行了比較理想的分詞

三、配置自定義分詞擴充詞庫

IK分詞器對中文有比較好的分詞效果,但是它並不能對當前比較熱門的網路流行詞或者一些新的詞進行分詞處理

上圖可以看到,IK分詞器並不支援某一些詞彙的分詞處理

所以,我們需要配置一下自定義的分詞擴充詞庫,來支援熱門的網路流行詞或新詞。

1、配置自定義詞庫需要nginx的支援,首先需要安裝好nginx

如果沒有安裝nginx的話,可以參考這個:使用Docker快速安裝部署nginx

2、安裝後nginx後,下邊開始配置自定義的分詞擴充詞庫

[root@192 ~]# cd /mydata/nginx/html/
[root@192 html]# 
[root@192 html]# mkdir es
[root@192 html]# cd es
[root@192 html]# vi fenci.txt

在/mydata/nginx/html/ 目錄下新建一個es資料夾,然後新建一個fenci.txt的檔案,在裡邊寫需要支援分詞的詞彙,然後儲存

3、配置IK的擴充詞庫

cd /usr/share/elasticsearch/plugins/ik/config
vim IKAnalyzer.cfg.xml

#把裡邊註釋掉的這一句開啟並配置成你分詞文字所在的nginx訪問地址
<!--使用者可以在這裡配置遠端擴充套件字典 -->
<entry key="remote_ext_dict">http://192.168.xx.xx/es/fenci.txt</entry>

4、重啟ES容器

docker restart elasticsearch

重啟後,再來看下效果

可以看到已經可以按照自定義的分詞擴充詞庫來進行分詞了

ES的一些基本配置就講到這,如果覺得對你有幫助的話,可以點贊,或者點下關注,也歡迎在下方留言討論

相關文章