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

Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器

文章目录

    • 1 前言
    • 2 测试环境
    • 3 实现步骤
      • docker-compose 配置
      • 创建新账号(for kibaba)
      • ik分词插件
      • 配置volumes目录权限
    • 4 测试
      • 浏览器访问
      • curl访问
      • 分词器测试
    • 索引管理
    • 5 参考资料

1 前言

在当今数据驱动的时代,高效、灵活的全文本搜索与大数据分析能力已成为众多应用的核心需求。Elasticsearch作为基于Lucene构建的开源分布式搜索引擎,尤其擅长处理海量非结构化数据,支持近实时检索与复杂分析,广泛应用于日志处理、企业搜索和实时监控等场景。与传统数据库相比,它在全文检索和横向扩展方面优势显著,但不适用于强一致性事务场景。值得强调的是,利用Docker部署Elasticsearch已成为高效管理其运行环境的主流方式——通过容器化技术,我们能够快速构建一致、隔离且易于扩展的ES集群,大幅简化配置和依赖管理流程。配合IK中文分词插件,更可精准处理中文文本。本文将以Docker为核心工具,详细介绍如何快速部署Elasticsearch 8.17及相关组件,并演示基础配置与分词功能的实际应用。

2 测试环境

  • docker 24
  • elasticsearch 8.17
  • kibana: 8.17

3 实现步骤

docker-compose 配置

新建一个docker-compose.yml文件,填入以下内容。该配置文件定义了两个服务:Elasticsearch 和 Kibana。通过环境变量设置安全认证参数,挂载数据卷以实现数据持久化,并配置了内存限制与端口映射,确保服务间可互通且资源使用受控。

#version: '3.7'
services:elasticsearch:image: elasticsearch:8.17.4container_name: es01privileged: truevolumes:- ./volumes/elasticsearch/data:/usr/share/elasticsearch/data- ./volumes/elasticsearch/plugins:/usr/share/elasticsearch/pluginsports:- "9200:9200"- "9300:9300"mem_limit: 1genvironment:- discovery.type=single-node- xpack.security.enabled=true- ELASTIC_PASSWORD=your_password_1kibana:image: kibana:8.17.4container_name: kibana01environment:- ELASTICSEARCH_HOSTS=http://elasticsearch:9200- ELASTICSEARCH_USERNAME=kibana_user- ELASTICSEARCH_PASSWORD=your_password_2ports:- "5601:5601"depends_on:- elasticsearch

创建新账号(for kibaba)

为增强安全性,建议为Kibana服务创建专用用户,避免直接使用Elasticsearch内置的elastic超级用户。以下命令用于在Elasticsearch容器中创建新用户并配置相应权限。

新建账号

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-users useradd kibana_user
配置密码: your_password_2

给新账号授权

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-users roles -a superuser kibana_user
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-users roles -a kibana_system kibana_user

ik分词插件

IK分词器是针对中文文本处理的重要插件,支持智能分词和最大分词等多种模式。安装该插件后,Elasticsearch能够更准确地理解和处理中文内容。

安装插件:

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-plugin install https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.17.4.zip

配置volumes目录权限

为确保容器内Elasticsearch进程有足够的权限读写挂载目录,需对本地数据卷目录进行权限设置。

chmod -R 777 .volumes

4 测试

完成部署与配置后,需验证Elasticsearch、Kibana及IK分词器是否正常工作。可通过浏览器访问对应端口,或使用curl命令测试服务连通性。

浏览器访问

  • elasticsearch: http://your_ip:9200/
  • kibana: http://your_ip:5601/ 使用前面的 kibana_user 账号登录

curl访问

curl -u elastic:your_password_1 http://your_ip:9200

分词器测试

在Kibana的Dev Tools界面中,可对IK分词器的两种模式进行测试。ik_smart模式进行最粗粒度切分,适合精确查询场景;ik_max_word则进行最细粒度切分,适用于高召回需求。

在devtools下进行测试: http://your_ip:5601/app/dev_tools#/console/shell

ik_smart

GET /_analyze
{"tokenizer":"ik_smart","text":"中华人民共和国"
}

效果如下:
115-01

ik_max_word

GET /_analyze
{"tokenizer":"ik_max_word","text":"中华人民共和国"
}

效果如下:
115-02

索引管理

Kibana 提供了完善的索引管理功能,在绝大多数场景下已经完全有能力取代 Elasticsearch Head 插件,并且是 Elastic 官方推荐的做法。通过Kibana界面,用户可以直观地查看索引状态、执行映射管理及进行索引生命周期操作。索引管理界面参见:
http://your_ip:5601/app/management/data/index_management/indices

效果如下:
115-03

5 参考资料

https://www.elastic.co/docs/deploy-manage/deploy/self-managed/install-elasticsearch-docker-basic
https://elastic.ac.cn/guide/en/elasticsearch/reference/current/docker.html
https://hub.docker.com/_/elasticsearch/
Docker安装Elasticsearch、ik分词器、可视化工具 7.7.0
analysis-ik插件 release note
ik插件下载地址列表
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/index-mgmt.html


文章转载自:

http://LjJzh2qH.hcszr.cn
http://o71tIlBT.hcszr.cn
http://RVcJz9Y2.hcszr.cn
http://OyuL2G0j.hcszr.cn
http://mqWTCnuo.hcszr.cn
http://lidhhDbL.hcszr.cn
http://uGYnWX5k.hcszr.cn
http://1TmyfOYj.hcszr.cn
http://dz1cmVCN.hcszr.cn
http://2EH7hqcf.hcszr.cn
http://rMadXi5f.hcszr.cn
http://SiR7oa2w.hcszr.cn
http://TKuNHY2T.hcszr.cn
http://qr2AeknR.hcszr.cn
http://uUSkL4k4.hcszr.cn
http://l7HP9nWs.hcszr.cn
http://CSXJhJkv.hcszr.cn
http://Via1ATZG.hcszr.cn
http://dxAaWIAc.hcszr.cn
http://4RIuanBt.hcszr.cn
http://WeD9jHON.hcszr.cn
http://nFxt81Z0.hcszr.cn
http://mHpyv7Yw.hcszr.cn
http://eBUBD9De.hcszr.cn
http://m6BDt8Yp.hcszr.cn
http://rEk5tUcn.hcszr.cn
http://otyNVfuf.hcszr.cn
http://hxlfjUuS.hcszr.cn
http://xxZ5JcDM.hcszr.cn
http://VnA7erTT.hcszr.cn
http://www.dtcms.com/a/384834.html

相关文章:

  • 机器学习-第一章
  • 【Java EE进阶 --- SpringBoot】SpringBoot配置文件
  • 安装gemini-fullstack-langgraph-quickstart
  • IBM-Waston电信客户流失归因分析报告
  • 江协科技STM32课程笔记(二)
  • CAD多面体密堆积_圆柱体试件3D插件
  • 【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
  • Python TensorFlow的CNN-LSTM-GRU集成模型在边缘物联网数据IoT电动汽车充电站入侵检测应用
  • TensorFlow Lite Micro 流式关键词识别(KWS) - 完整使用指南
  • 塔能科技:一家“用软件定义硬件”的精准节能公司,正在重新定义行业
  • 基于 CoT 思维链协调多 MCP 工具:依托亚马逊云科技服务打造全流程智能的 Amazon Redshift 运维体系
  • TensorFlow Lite 全面解析:端侧部署方案与PyTorch Mobile深度对比
  • 【机器学习】用 TensorFlow 实现词向量训练全流程
  • C# --- 使用定时任务实现日志的定时聚合
  • Origin如何将格点色阶条进化为渐变色阶条
  • 非关系数据库(NoSQL):所需软件与环境配置全指南
  • 计算机网络1
  • 字幕编辑工具推荐,Subtitle Edit v4.0.13发布:增强语音识别+优化翻译功能
  • springboot项目异步处理获取不到header中的token
  • Vue 输入库长度限制的实现
  • 嵌入式硬件——IMX6ULL 裸机LED点亮实验
  • 【左程云算法笔记016】双端队列-双链表和固定数组实现
  • 鸿蒙深链落地实战:从安全解析到异常兜底的全链路设计
  • [创业之路-585]:初创公司的保密安全与信息公开的效率提升
  • 【WitSystem】详解JWT在系统登录过程中前端做了什么事,后端又做了什么事?
  • 力扣(LeetCode) ——217. 存在重复元素(C++)
  • 计算机视觉(opencv)实战二十三——图像拼接
  • 性能测试-jmeter11-报告分析
  • 《从请假到云原生:读懂工作流引擎选型与实战》
  • JDBC插入数据