最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker容器部署Elasticsearch并配置分詞器的方法實(shí)現(xiàn)

 更新時(shí)間:2026年04月22日 15:14:15   作者:冷炫風(fēng)刃  
本文主要介紹了Docker容器部署Elasticsearch并配置分詞器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、環(huán)境準(zhǔn)備

1.1 拉取Elasticsearch鏡像

# 拉取指定版本(建議使用7.x或8.x穩(wěn)定版)
docker pull elasticsearch:7.17.20
# 驗(yàn)證鏡像
docker images | grep elasticsearch

1.2 創(chuàng)建掛載目錄

# 創(chuàng)建數(shù)據(jù)、配置、插件、日志目錄
mkdir -p /opt/es/{data,config,plugins,logs}
# 設(shè)置權(quán)限(ES容器以u(píng)id:1000用戶運(yùn)行)
chown -R 1000:1000 /opt/es

1.3 基礎(chǔ)配置文件

創(chuàng)建 /opt/es/config/elasticsearch.yml

cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
xpack.security.enabled: false
http.cors.enabled: true
http.cors.allow-origin: "*"

二、啟動(dòng)Elasticsearch容器

2.1 運(yùn)行容器

docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -v /opt/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  -v /opt/es/data:/usr/share/elasticsearch/data \
  -v /opt/es/plugins:/usr/share/elasticsearch/plugins \
  -v /opt/es/logs:/usr/share/elasticsearch/logs \
  --restart=unless-stopped \
  elasticsearch:7.17.20

2.2 驗(yàn)證啟動(dòng)

# 檢查容器狀態(tài)
docker ps | grep elasticsearch
# 測(cè)試ES服務(wù)
curl http://localhost:9200

預(yù)期返回:

{
  "name" : "node-1",
  "cluster_name" : "docker-cluster",
  "version" : { "number" : "7.17.20" }
}

三、安裝IK分詞器

3.1 方法一:在線安裝(進(jìn)入容器)

# 進(jìn)入容器
docker exec -it elasticsearch /bin/bash
# 在線安裝IK(版本需與ES完全一致)
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.20/elasticsearch-analysis-ik-7.17.20.zip
# 退出并重啟
exit
docker restart elasticsearch

3.2 方法二:離線安裝(推薦)

bash

# 1. 下載對(duì)應(yīng)版本的IK插件包
cd /opt/es/plugins
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.20/elasticsearch-analysis-ik-7.17.20.zip

# 2. 解壓到ik目錄
unzip elasticsearch-analysis-ik-7.17.20.zip -d ik
rm -f elasticsearch-analysis-ik-7.17.20.zip

# 3. 設(shè)置權(quán)限
chown -R 1000:1000 /opt/es/plugins/ik

# 4. 重啟容器
docker restart elasticsearch

3.3 方法三:Dockerfile構(gòu)建(生產(chǎn)推薦)

dockerfile

FROM elasticsearch:7.17.20
COPY elasticsearch-analysis-ik-7.17.20.zip /tmp/
RUN ./bin/elasticsearch-plugin install -b file:///tmp/elasticsearch-analysis-ik-7.17.20.zip
docker build -t elasticsearch-with-ik:7.17.20 .
docker run -d --name elasticsearch -p 9200:9200 elasticsearch-with-ik:7.17.20

四、驗(yàn)證IK分詞器

4.1 查看已安裝插件

docker exec -it elasticsearch ./bin/elasticsearch-plugin list

預(yù)期輸出:analysis-ik

4.2 測(cè)試分詞效果

curl -X POST "http://localhost:9200/_analyze" -H "Content-Type: application/json" -d'
{
  "analyzer": "ik_max_word",
  "text": "中華人民共和國(guó)國(guó)徽"
}'

ik_max_word(最細(xì)粒度)返回示例

{
  "tokens": [
    {"token": "中華人民共和國(guó)", "position": 0},
    {"token": "中華人民", "position": 1},
    {"token": "中華", "position": 2},
    {"token": "華人", "position": 3},
    {"token": "人民共和國(guó)", "position": 4},
    {"token": "人民", "position": 5},
    {"token": "共和國(guó)", "position": 6},
    {"token": "共和", "position": 7},
    {"token": "國(guó)", "position": 8},
    {"token": "國(guó)徽", "position": 9}
  ]
}
# 測(cè)試ik_smart(最少切分)
curl -X POST "http://localhost:9200/_analyze" -H "Content-Type: application/json" -d'
{
  "analyzer": "ik_smart",
  "text": "中華人民共和國(guó)國(guó)徽"
}'

五、自定義詞典配置

5.1 找到IK配置文件位置

# 查看插件目錄掛載位置
docker inspect elasticsearch | grep -A 10 "Mounts"

配置文件位于:/usr/share/elasticsearch/config/analysis-ik/

5.2 修改IKAnalyzer.cfg.xml

# 進(jìn)入容器
docker exec -it elasticsearch /bin/bash
# 編輯配置文件
vi /usr/share/elasticsearch/config/analysis-ik/IKAnalyzer.cfg.xml

添加擴(kuò)展詞典配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>IK Analyzer 擴(kuò)展配置</comment>
    <!-- 自定義擴(kuò)展詞典 -->
    <entry key="ext_dict">ext_dict.dic</entry>
    <!-- 自定義停用詞詞典 -->
    <entry key="ext_stopwords">stopword.dic</entry>
</properties>

5.3 創(chuàng)建自定義詞典文件

# 進(jìn)入配置目錄
cd /usr/share/elasticsearch/config/analysis-ik/
# 創(chuàng)建擴(kuò)展詞典(每行一個(gè)詞)
echo "傳智播客" >> ext_dict.dic
echo "奧力給" >> ext_dict.dic
echo "人工智能" >> ext_dict.dic
# 創(chuàng)建停用詞詞典
echo "的" >> stopword.dic
echo "了" >> stopword.dic
echo "呢" >> stopword.dic
# 退出容器
exit
# 重啟ES
docker restart elasticsearch

5.4 掛載方式管理詞典(推薦)

# 1. 從容器復(fù)制默認(rèn)配置到宿主機(jī)
docker cp elasticsearch:/usr/share/elasticsearch/config/analysis-ik ./analysis-ik-config
# 2. 修改宿主機(jī)上的配置文件
vi ./analysis-ik-config/IKAnalyzer.cfg.xml
echo "自定義詞匯" >> ./analysis-ik-config/ext_dict.dic
# 3. 重新掛載啟動(dòng)(掛載配置目錄)
docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -v /opt/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  -v /opt/es/data:/usr/share/elasticsearch/data \
  -v /opt/es/plugins:/usr/share/elasticsearch/plugins \
  -v /opt/es/logs:/usr/share/elasticsearch/logs \
  -v $(pwd)/analysis-ik-config:/usr/share/elasticsearch/config/analysis-ik \
  elasticsearch:7.17.20

六、驗(yàn)證自定義詞典

curl -X POST "http://localhost:9200/_analyze" -H "Content-Type: application/json" -d'
{
  "analyzer": "ik_max_word",
  "text": "傳智播客Java就業(yè)率超過(guò)95%,奧力給!"
}'

如果"傳智播客"和"奧力給"被正確識(shí)別為一個(gè)完整詞元,說(shuō)明自定義詞典生效。

七、常見(jiàn)問(wèn)題與排錯(cuò)

7.1 容器啟動(dòng)后閃退

# 查看錯(cuò)誤日志
docker logs elasticsearch
# 常見(jiàn)原因:
# 1. IK版本與ES版本不匹配 → 重新下載匹配版本
# 2. 插件目錄權(quán)限不足 → chown -R 1000:1000 /opt/es/plugins
# 3. 內(nèi)存不足 → 調(diào)整ES_JAVA_OPTS=-Xms256m -Xmx256m

7.2 分詞器不生效

# 檢查插件是否安裝成功
docker exec -it elasticsearch ./bin/elasticsearch-plugin list

# 檢查文件編碼(必須是UTF-8,無(wú)BOM)
file -bi /opt/es/plugins/ik/config/*.dic

7.3 自定義詞典未加載

# 查看ES日志確認(rèn)詞典加載
docker logs elasticsearch 2>&1 | grep -i "dic"
# 預(yù)期輸出:
# [INFO] loading ext_dict.dic
# [INFO] loading stopword.dic

八、快速參考

操作命令
啟動(dòng)ESdocker start elasticsearch
停止ESdocker stop elasticsearch
重啟ESdocker restart elasticsearch
查看日志docker logs -f elasticsearch
進(jìn)入容器docker exec -it elasticsearch /bin/bash
測(cè)試分詞curl -X POST "localhost:9200/_analyze" -H "Content-Type: application/json" -d'{...}'

到此這篇關(guān)于Docker容器部署Elasticsearch并配置分詞器的文章就介紹到這了,更多相關(guān)Docker部署Elasticsearch配置分詞器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker容器啟動(dòng)不起來(lái)的若干問(wèn)題解決

    docker容器啟動(dòng)不起來(lái)的若干問(wèn)題解決

    本文主要介紹了docker容器啟動(dòng)不起來(lái)的若干問(wèn)題解決,文中通過(guò)圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • deepin apt命令安裝最新版本的docker的方法

    deepin apt命令安裝最新版本的docker的方法

    這篇文章主要介紹了deepin apt命令安裝最新版本的docker的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Docker終端無(wú)法輸入中文問(wèn)題及解決

    Docker終端無(wú)法輸入中文問(wèn)題及解決

    Docker終端輸入中文問(wèn)題可通過(guò)修改語(yǔ)言環(huán)境解決,系統(tǒng)默認(rèn)POSIX字符集不支持中文,將環(huán)境變量LANG設(shè)置為C.UTF-8即可解決,方法包括啟動(dòng)容器時(shí)添加環(huán)境變量和進(jìn)入容器后修改
    2024-11-11
  • 淺談Docker 客戶端和守護(hù)進(jìn)程

    淺談Docker 客戶端和守護(hù)進(jìn)程

    這篇文章主要介紹了淺談Docker 客戶端和守護(hù)進(jìn)程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 在Jenkins Docker容器中切換到root用戶并解決權(quán)限問(wèn)題的完整指南

    在Jenkins Docker容器中切換到root用戶并解決權(quán)限問(wèn)題的完整指南

    在使用Jenkins構(gòu)建和部署項(xiàng)目時(shí),可能會(huì)遇到一些操作需要root用戶權(quán)限,比如安裝軟件包、創(chuàng)建軟鏈接等,在Jenkins的Docker容器中,默認(rèn)是以非特權(quán)用戶運(yùn)行的,這意味著你可能會(huì)遇到權(quán)限不足的問(wèn)題,本文將教你如何在Jenkins容器中切換到root用戶,需要的朋友可以參考下
    2025-08-08
  • docker部署firefox瀏覽器實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)

    docker部署firefox瀏覽器實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)

    在使用docker時(shí),默認(rèn)情況下只能在本地進(jìn)行訪問(wèn),本文就來(lái)介紹一下docker部署firefox瀏覽器實(shí)現(xiàn)遠(yuǎn)程訪問(wèn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Docker?刪除鏡像的實(shí)現(xiàn)

    Docker?刪除鏡像的實(shí)現(xiàn)

    本文主要介紹了Docker?刪除鏡像的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • docker?清理緩存腳本解析

    docker?清理緩存腳本解析

    這篇文章主要介紹了docker?清理緩存腳本解析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • docker-compose中l(wèi)ink和external_links的區(qū)別及說(shuō)明

    docker-compose中l(wèi)ink和external_links的區(qū)別及說(shuō)明

    拆分docker-compose.yml導(dǎo)致depends_on、links和external網(wǎng)絡(luò)配置失效,因compose限制及Portainer命名沖突,解決方案為使用external_links或手動(dòng)創(chuàng)建網(wǎng)絡(luò)
    2025-09-09
  • 使用Docker開(kāi)發(fā)python Web 應(yīng)用

    使用Docker開(kāi)發(fā)python Web 應(yīng)用

    本文給大家詳細(xì)講解了如何使用Docker開(kāi)發(fā)python應(yīng)用,特別是WEB應(yīng)用的步驟,Docker本質(zhì)上提供了非常輕量化的VMs,我們可以使用其創(chuàng)建一個(gè)高標(biāo)準(zhǔn)隔離并能大大減少失配的開(kāi)發(fā)和產(chǎn)品環(huán)境。
    2016-10-10

最新評(píng)論

龙南县| 额敏县| 外汇| 绥中县| 临汾市| 永泰县| 扎囊县| 德格县| 平遥县| 孝义市| 丰台区| 英吉沙县| 平潭县| 辽阳县| 静乐县| 城步| 文昌市| 英吉沙县| 成武县| 宁化县| 稷山县| 军事| 涡阳县| 遂昌县| 贞丰县| 桐乡市| 涡阳县| 齐齐哈尔市| 台前县| 城步| 丹凤县| 惠安县| 芜湖县| 楚雄市| 收藏| 长葛市| 霞浦县| 夹江县| 湟源县| 社会| 体育|