前言
最近在學(xué)習(xí) ES,所以需要在服務(wù)器上裝一個(gè)單節(jié)點(diǎn)的 ES
服務(wù)器環(huán)境:centos 7.9
安裝
下載鏡像
目前最新版本是 8.12.2
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.2
創(chuàng)建配置
新增配置文件 elasticsearch.yml
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: true
解釋一下,前三行是開(kāi)啟遠(yuǎn)程訪問(wèn)和跨域,最后一行是開(kāi)啟密碼訪問(wèn)
Networking | Elasticsearch Guide [8.12] | Elastic
創(chuàng)建數(shù)據(jù)掛載目錄
在宿主機(jī)創(chuàng)建容器的掛載目錄,我的目錄如下
/home/elasticsearch
├── config
│ ├── analysis-ik
│ └── elasticsearch.yml
├── data
└── plugins
上一節(jié)說(shuō)的配置文件 elasticsearch. yml 放在 /home/elasticsearch/config/elasticsearch. yml
創(chuàng)建 config/analysis-ik 、data、plugins 目錄
這里需要重點(diǎn)說(shuō)下 analysis-ik 文件夾,這是用來(lái)存放 ik 分詞器的配置文件的目錄,里面的文件由容器創(chuàng)建,所以需要分配與容器相同的權(quán)限(相同的用戶(hù))
不知道怎么弄的看以下步驟
# 啟動(dòng)臨時(shí)的docker容器
docker run --name es01 -e "discovery.type=single-node" -t docker.elastic.co/elasticsearch/elasticsearch:8.12.2
# 查看用戶(hù)
ps -ef | grep elasticsearch
# 查看用戶(hù)id
id 用戶(hù)名
# 刪除臨時(shí)的docker容器
docker kill es01 && docker rm es01
# 修改文件夾權(quán)限(uid就是用戶(hù)id,自行替換)
sudo chown -R uid:uid /home/elasticsearch/config/analysis-ik
啟動(dòng) docker 容器
docker run --privileged=true --name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/config/analysis-ik:/usr/share/elasticsearch/config/analysis-ik \
-v /home/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d docker.elastic.co/elasticsearch/elasticsearch:8.12.2
-e ES_JAVA_OPTS="-Xms 64 m -Xmx 128 m"
是指定 jvm 大小,參見(jiàn) Manually set the heap size
安裝 ik 分詞器
# 進(jìn)入docker容器
docker exec -it elasticsearch /bin/bash
# 安裝ik分詞器(此命令要在容器內(nèi)執(zhí)行)
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.12.2/elasticsearch-analysis-ik-8.12.2.zip
如果安裝 ik 分詞器時(shí)報(bào)錯(cuò)并且出現(xiàn) Permission denied 字樣,那就是 analysis-ik 文件夾的權(quán)限沒(méi)有配置正確。
安裝完成之后別急著退出容器,往下看
初始化密碼
# 此命令要在容器內(nèi)執(zhí)行
./bin/elasticsearch-setup-passwords interactive
設(shè)置 ik 分詞器自定義用戶(hù)詞典
修改 /home/elasticsearch/config/analysis-ik/IKAnalyzer.cfg.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 擴(kuò)展配置</comment>
<!--用戶(hù)可以在這里配置自己的擴(kuò)展字典 -->
<entry key="ext_dict">custom/mydict.dic;custom/single_word_low_freq.dic</entry>
<!--用戶(hù)可以在這里配置自己的擴(kuò)展停止詞字典-->
<entry key="ext_stopwords">custom/ext_stopword.dic</entry>
<!--用戶(hù)可以在這里配置遠(yuǎn)程擴(kuò)展字典 -->
<entry key="remote_ext_dict">location</entry>
<!--用戶(hù)可以在這里配置遠(yuǎn)程擴(kuò)展停止詞字典-->
<entry key="remote_ext_stopwords">http://xxx.com/xxx.dic</entry>
</properties>
例如 custom/mydict.dic
,那么文件就存放在 /home/elasticsearch/config/analysis-ik/custom/mydict. dic
記得分配讀寫(xiě)權(quán)限,不然容器沒(méi)法去讀取
總結(jié)
本文介紹了 elasticsearch 8.12.2 的安裝和 ik 分詞器的安裝。最后推薦一個(gè)連接 ES 的工具 es-client
es-head 已經(jīng)停止更新了,有坑,快跑。
最后再 bb 一句,es-client 也有坑,查詢(xún)請(qǐng)用 POST,因?yàn)?GET 方式?jīng)]法攜帶請(qǐng)求 body
參考資料
史上最詳細(xì)Docker安裝Elasticsearch、ik分詞器、可視化工具,每一步都帶有步驟圖?。。?mark hidden color="red">文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-851605.html
神坑:ElasticSearch8集群?jiǎn)?dòng)報(bào)錯(cuò)“Device or resource busy”(Docker方式)_/usr/share/elasticsearch/config/elasticsearch.yml文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-851605.html
到了這里,關(guān)于Elasticsearch8 - Docker安裝Elasticsearch8.12.2的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!