Elasticsearch 8.5.3 + IK 分词器 + Kibana 8.5.3 一键安装
版本统一 :ES 8.5.3 + IK 8.5.3 + Kibana 8.5.3
特性:关闭安全认证、无密码访问、中文分词开箱即用
一、环境彻底卸载(清空所有残留)
执行以下命令,删除所有旧容器、数据、网络,无任何冲突
bash
# 停止并删除 ES、Kibana 容器
docker rm -f elasticsearch kibana
# 清理无用数据卷(清空数据)
docker volume prune -f
# 清理无用网络
docker network prune -f
二、一键安装完整环境(复制直接运行)
bash
# 1. 创建Docker专用网络
docker network create es-net
# 2. 启动 Elasticsearch 8.5.3
docker run -d \
--name elasticsearch \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-e "xpack.security.http.ssl.enabled=false" \
elasticsearch:8.5.3
# 3. 等待ES启动
sleep 25
# 4. 安装 IK 中文分词器 8.5.3
docker exec elasticsearch bin/elasticsearch-plugin install -b https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.5.3.zip
# 5. 重启ES使分词器生效
docker restart elasticsearch
sleep 25
# 6. 启动 Kibana 8.5.3
docker run -d \
--name kibana \
--net es-net \
-p 5601:5601 \
-e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" \
kibana:8.5.3
三、安装完成访问地址
- Elasticsearch:
http://服务器IP:9200 - Kibana控制台:
http://服务器IP:5601 - 无账号密码,直接访问
四、IK 分词器 完整测试教程
4.1 检查 IK 是否安装成功(必测)
服务器终端执行:
bash
docker exec elasticsearch bin/elasticsearch-plugin list
✅ 输出 analysis-ik = 安装成功
4.2 命令行直接测试分词(无需Kibana)
终端执行,最稳定无报错:
bash
# 细粒度分词 ik_max_word
curl -X POST -H "Content-Type: application/json" http://127.0.0.1:9200/_analyze -d '{
"analyzer": "ik_max_word",
"text": "我是中国人,我爱中国"
}'
# 智能分词 ik_smart
curl -X POST -H "Content-Type: application/json" http://127.0.0.1:9200/_analyze -d '{
"analyzer": "ik_smart",
"text": "中华人民共和国"
}'
4.3 Kibana 可视化测试(推荐)
打开 Kibana → 左侧菜单 Dev Tools → 粘贴执行
1. ik_max_word(最细粒度分词,搜索专用)
json
POST _analyze
{
"analyzer": "ik_max_word",
"text": "中华人民共和国"
}
2. ik_smart(智能粗粒度分词,展示专用)
json
POST _analyze
{
"analyzer": "ik_smart",
"text": "中华人民共和国"
}
3. 长句中文分词
json
POST _analyze
{
"analyzer": "ik_max_word",
"text": "Elasticsearch 中文分词测试,我喜欢用IK分词器"
}
4. 中英文混合分词
json
POST _analyze
{
"analyzer": "ik_max_word",
"text": "iPhone 16 华为Mate70 直播带货 人工智能"
}
五、实战:创建索引 + 使用IK分词(开发必备)
5.1 创建使用IK分词的索引
json
PUT /test_ik
{
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"content": {
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}
5.2 插入测试数据
json
POST /test_ik/_doc/1
{
"title": "Elasticsearch中文搜索教程",
"content": "IK分词器是最好用的中文分词工具"
}
5.3 中文搜索测试
json
GET /test_ik/_search
{
"query": {
"match": {
"content": "中文分词"
}
}
}
✅ 能查询到数据 = IK分词完全正常工作
六、IK 分词器核心说明
6.1 仅有的两种官方分词模式
- ik_max_word
穷尽所有可能词语拆分,最细粒度,搜索必用 - ik_smart
最优智能拆分,无冗余,展示/摘要用
6.2 扩展能力
- 支持自定义词典(品牌词、专业词)
- 支持停用词过滤(的、了、吗、呢)
- 支持热更新词典,无需重启ES
- 完美支持中英文、数字、符号混合分词
七、常见问题
-
Kibana 显示 server not ready
等待1-3分钟初始化即可,属于正常现象
-
测试分词报 400 错误
必须使用
POST请求,GET 不能携带请求体 -
IK分词不生效
执行
docker restart elasticsearch重启ES即可