当前位置: 首页 > article >正文

ES、Kibana一键式部署脚本执行文件,外加IK分词器和拼音分词器

#!/bin/bash

# 设置变量
ES_VERSION="7.12.1"
KIBANA_VERSION="7.12.1"
ES_CONTAINER="es"
KIBANA_CONTAINER="kibana"
NETWORK_NAME="es-net"
ES_DATA_VOLUME="es-data"
ES_PLUGINS_VOLUME="es-plugins"
ES_PORT=9200
KIBANA_PORT=5601

# 1️⃣ 检查是否安装 Docker & Docker Compose
echo "📌 检查 Docker 是否已安装..."
if ! command -v docker &> /dev/null; then
    echo "❌ Docker 未安装,正在安装..."
    sudo apt update && sudo apt install -y docker.io
    sudo systemctl start docker && sudo systemctl enable docker
else
    echo "✅ Docker 已安装"
fi

# 2️⃣ 创建 Docker 网络
echo "📌 创建 Docker 网络: $NETWORK_NAME"
docker network create $NETWORK_NAME 2>/dev/null || echo "✅ 网络已存在"

# 3️⃣ 运行 Elasticsearch 容器
echo "🚀 启动 Elasticsearch ($ES_VERSION)..."
docker run -d \
    --name $ES_CONTAINER \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v $ES_DATA_VOLUME:/usr/share/elasticsearch/data \
    -v /usr/share/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network $NETWORK_NAME \
    -p $ES_PORT:9200 \
    -p 9300:9300 \
    elasticsearch:$ES_VERSION

# 4️⃣ 运行 Kibana 容器
echo "🚀 启动 Kibana ($KIBANA_VERSION)..."
docker run -d \
    --name $KIBANA_CONTAINER \
    -e ELASTICSEARCH_HOSTS=http://$ES_CONTAINER:9200 \
    --network=$NETWORK_NAME \
    -p $KIBANA_PORT:5601 \
    kibana:$KIBANA_VERSION

# 5️⃣ 安装 IK 和拼音分词器
echo "📌 安装 IK 和拼音分词器..."
IK_PLUGIN_URL="https://release.infinilabs.com/analysis-pinyin/stable/elasticsearch-analysis-pinyin-7.12.1.zip"
PINYIN_PLUGIN_URL="https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-7.12.1.zip"

# 确保 plugins 目录存在
sudo mkdir -p /usr/share/elasticsearch/plugins

echo "⬇️ 下载 IK 分词器..."
sudo wget -q $IK_PLUGIN_URL -O ik.zip
sudo unzip -q ik.zip -d /usr/share/elasticsearch/plugins/ik

echo "⬇️ 下载拼音分词器..."
sudo wget -q $PINYIN_PLUGIN_URL -O pinyin.zip
sudo unzip -q pinyin.zip -d /usr/share/elasticsearch/plugins/pinyin

# 设置权限,确保 Elasticsearch 能加载插件
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/plugins

# 删除临时安装包
rm -f ik.zip pinyin.zip

# 6️⃣ 重启 Elasticsearch 使插件生效
echo "🔄 重启 Elasticsearch..."
docker stop $ES_CONTAINER
sleep 5
docker start $ES_CONTAINER

# 7️⃣ 提示访问 Kibana
echo "🎉 部署完成!"
echo "📌 Elasticsearch: http://localhost:$ES_PORT"
echo "📌 Kibana: http://localhost:$KIBANA_PORT"

测试是否成功安装插件

GET _cat/plugins?v

如下:

IK分词器测试

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "我是中国人"
}

如下:

拼音分词器

POST _analyze
{
  "analyzer": "pinyin",
  "text": "中国"
}

如下:


http://www.kler.cn/a/595576.html

相关文章:

  • Flink SQL 技术原理详解
  • 使用 Google Firebase 控制台和 ESP8266 NodeMCU 的物联网控制 LED
  • JavaScript实现一个函数,将数组扁平化(flatten),即把多维数组转为一维数组。
  • Visual Studio Code 连接 SAP ERP 系统
  • SpringBoot实现异步调用的方法
  • 北斗导航 | 北斗三号区域短报文相关知识总结
  • 一份针对零基础学习AI Agent详细学习计划
  • 【Ratis】Ratis Streaming概览
  • numpy学习笔记13:np.random.choice和np.cumsum的解释
  • Docker 速通(总结)
  • 【Unity基础】Unity中角色动画的三种实现方式
  • DAY13 线程池、死锁、线程状态、计时器
  • 如何在ubuntu上安装zookeeper
  • 在 Elasticsearch 中探索基于 NVIDIA 的 GPU 加速向量搜索
  • w265基于Spring Boot库存管理系统
  • 【C++】static、内部类
  • Vue.js 过滤器(Filters):简化文本格式化的利器
  • 测试Claude3.7 sonnet画蛋白质
  • 「AI+办公」共学(四):办公综合应用
  • 实现拖拽图片验证的基本步骤