一、ElasticSearch是什麼?
Elasticsearch也使用Java開發並使用Lucene作爲其核心來實現所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的複雜性,從而讓全文搜索變得簡單。
不過,Elasticsearch不僅僅是Lucene和全文搜索,我們還能這樣去描述它:
- 分佈式的實時文件存儲,每個字段都被索引並可被搜索
- 分佈式的實時分析搜索引擎
- 可以擴展到上百臺服務器,處理PB級結構化或非結構化數據
二、Docker 部署 ElasticSearch
2.1 拉取鏡像
docker pull elasticsearch:7.7.0
2.2 運行容器
在啓動前需要調整宿主機的虛擬內存大小,否則會報錯,報錯內容就是虛擬內存不足:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
因此我們需要把虛擬內存設置爲262144大小,執行命令:
sysctl -w vm.max_map_count=262144
以上只是臨時設置虛擬內存大小,要想永久生效還需得在配置文件中設置,即在 /etc/sysctl.conf文件最後添加一行 vm.max_map_count=262144
,即可永久生效。
ElasticSearch
的默認端口是9200,我們把宿主環境9200端口映射到Docker
容器中的9200端口,就可以訪問到Docker
容器中的ElasticSearch
服務了,同時我們把這個容器命名爲elasticsearch
。
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "cluster.name=elasticsearch" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" elasticsearch:7.7.0
2.3 安裝 Elasticsearch ik 中文分詞器
-
在線安裝
-
進入容器
docker exec -it elasticsearch /bin/bash
-
在線下載並安裝
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
安裝成功後,進入plugins可以看到IK分詞器已經安裝成功,或者使用
elasticsearch-plugin list
-
-
離線安裝
-
將下載好的IK分詞器上傳到宿主機/tmp目錄中
-
將壓縮包移動到容器中
docker cp /tmp/elasticsearch-analysis-ik-7.7.0.zip elasticsearch:/usr/share/elasticsearch/plugins
-
進入容器
docker exec -it elasticsearch /bin/bash
-
創建目錄
mkdir /usr/share/elasticsearch/plugins/ik
-
將文件壓縮包移動到ik中
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.7.0.zip /usr/share/elasticsearch/plugins/ik
-
進入目錄
cd /usr/share/elasticsearch/plugins/ik
-
解壓後可選擇是否刪除原壓縮包
unzip elasticsearch-analysis-ik-7.7.0.zip rm -rf elasticsearch-analysis-ik-7.7.0.zip
-
退出並重啓鏡像
exit docker restart elasticsearch
-