[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-31":3},{"id":4,"title":5,"title_en":6,"abstract":7,"abstract_en":8,"content":9,"content_en":9,"category":10,"banner_id":11,"banner_path":12,"tags":13,"is_recommend":15,"prev_article":16,"next_article":20,"created_at":24},31,"Docker 部署 Elasticsearch 8.x","Docker Deployment of Elasticsearch 8.x","# Docker 部署 Elasticsearch 8.x 完整指南\n\n## 前言\n\n> Elast","# Docker Deployment Elasticsearch 8.x Complete Guide\n\n##Preface\n\n> Elast","# Docker 部署 Elasticsearch 8.x 完整指南\n\n## 前言\n\n> Elasticsearch 是一个强大的分布式搜索和分析引擎，广泛应用于日志分析、全文搜索、数据可视化等场景。本文将详细介绍如何使用 Docker 部署 Elasticsearch 8.x，并配置中文分词插件。\n\n## 环境准备\n\n- Docker 已安装\n- 服务器内存建议 4GB 以上\n- 确保防火墙开放 9200 和 9300 端口\n\n## 基础部署\n\n### 1. 拉取官方镜像\n\n```bash\ndocker pull docker.elastic.co\u002Felasticsearch\u002Felasticsearch:8.16.0\n```\n\n### 2. 创建并启动容器\n\n```bash\ndocker run -d \\\n  --name elasticsearch \\\n  -p 9200:9200 \\\n  -p 9300:9300 \\\n  -e \"discovery.type=single-node\" \\\n  -e \"xpack.security.enabled=true\" \\\n  -e \"xpack.security.http.ssl.enabled=false\" \\\n  -e \"xpack.security.transport.ssl.enabled=false\" \\\n  -e \"ELASTIC_PASSWORD=your_password_here\" \\\n  docker.elastic.co\u002Felasticsearch\u002Felasticsearch:8.16.0\n```\n\n### 3. 验证部署\n\n```bash\ncurl -u elastic:your_password_here http:\u002F\u002Fyour_server_ip:9200\u002F\n```\n\n成功响应示例：\n```json\n{\n  \"name\" : \"container_id\",\n  \"cluster_name\" : \"docker-cluster\",\n  \"cluster_uuid\" : \"uuid_string\",\n  \"version\" : {\n    \"number\" : \"8.16.0\",\n    \"build_flavor\" : \"default\",\n    \"build_type\" : \"docker\"\n  },\n  \"tagline\" : \"You Know, for Search\"\n}\n```\n\n## 配置说明\n\n### 重要环境变量\n\n- `discovery.type=single-node`: 单节点模式\n- `xpack.security.enabled=true`: 启用安全认证\n- `xpack.security.http.ssl.enabled=false`: 禁用 HTTP SSL\n- `xpack.security.transport.ssl.enabled=false`: 禁用传输层 SSL\n- `ELASTIC_PASSWORD`: 设置 elastic 用户密码\n\n### 为什么禁用 SSL？\n\n在开发环境中禁用 SSL 可以：\n- 简化客户端连接配置\n- 避免证书管理复杂性\n- 提高开发效率\n\n**注意：生产环境建议启用 SSL 确保安全性**\n\n## 安装中文分词插件\n\n### 方法一：版本匹配安装\n\n```bash\n# 停止并删除现有容器\ndocker stop elasticsearch\ndocker rm elasticsearch\n\n# 使用匹配版本的 Elasticsearch\ndocker run -d \\\n  --name elasticsearch \\\n  -p 9200:9200 \\\n  -p 9300:9300 \\\n  -e \"discovery.type=single-node\" \\\n  -e \"xpack.security.enabled=true\" \\\n  -e \"xpack.security.http.ssl.enabled=false\" \\\n  -e \"xpack.security.transport.ssl.enabled=false\" \\\n  -e \"ELASTIC_PASSWORD=your_password_here\" \\\n  docker.elastic.co\u002Felasticsearch\u002Felasticsearch:8.4.1\n\n# 安装 IK 分词插件\ndocker exec -it elasticsearch .\u002Fbin\u002Felasticsearch-plugin install https:\u002F\u002Fget.infini.cloud\u002Felasticsearch\u002Fanalysis-ik\u002F8.4.1\n\n# 重启容器使插件生效\ndocker restart elasticsearch\n```\n\n### 方法二：使用 Docker Compose\n\n创建 `docker-compose.yml`：\n\n```yaml\nversion: '3.8'\nservices:\n  elasticsearch:\n    image: docker.elastic.co\u002Felasticsearch\u002Felasticsearch:8.4.1\n    container_name: elasticsearch\n    environment:\n      - discovery.type=single-node\n      - xpack.security.enabled=true\n      - xpack.security.http.ssl.enabled=false\n      - xpack.security.transport.ssl.enabled=false\n      - ELASTIC_PASSWORD=your_password_here\n    ports:\n      - \"9200:9200\"\n      - \"9300:9300\"\n    volumes:\n      - es_data:\u002Fusr\u002Fshare\u002Felasticsearch\u002Fdata\n    command: >\n      bash -c \"\n        .\u002Fbin\u002Felasticsearch-plugin install --batch https:\u002F\u002Fget.infini.cloud\u002Felasticsearch\u002Fanalysis-ik\u002F8.4.1 &&\n        .\u002Fbin\u002Felasticsearch\n      \"\n\nvolumes:\n  es_data:\n```\n\n启动：\n```bash\ndocker-compose up -d\n```\n\n### 验证 IK 分词插件\n\n```bash\ncurl -u elastic:your_password_here -X POST \"http:\u002F\u002Fyour_server_ip:9200\u002F_analyze\" -H 'Content-Type: application\u002Fjson' -d'\n{\n  \"analyzer\": \"ik_max_word\",\n  \"text\": \"中华人民共和国\"\n}'\n```\n\n## 应用集成\n\n### Go 语言集成示例\n\n```go\npackage main\n\nimport (\n    \"github.com\u002Felastic\u002Fgo-elasticsearch\u002Fv8\"\n)\n\nfunc main() {\n    cfg := elasticsearch.Config{\n        Addresses: []string{\n            \"http:\u002F\u002Fyour_server_ip:9200\",\n        },\n        Username: \"elastic\",\n        Password: \"your_password_here\",\n    }\n    \n    es, err := elasticsearch.NewClient(cfg)\n    if err != nil {\n        panic(err)\n    }\n    \n    \u002F\u002F 测试连接\n    res, err := es.Info()\n    if err != nil {\n        panic(err)\n    }\n    defer res.Body.Close()\n}\n```\n\n### 索引映射配置\n\n```json\n{\n  \"mappings\": {\n    \"properties\": {\n      \"title\": {\n        \"type\": \"text\",\n        \"analyzer\": \"ik_max_word\",\n        \"fields\": {\n          \"keyword\": {\n            \"type\": \"keyword\",\n            \"ignore_above\": 256\n          }\n        }\n      },\n      \"content\": {\n        \"type\": \"text\",\n        \"analyzer\": \"ik_max_word\"\n      }\n    }\n  }\n}\n```\n\n## 常见问题\n\n### 1. 内存不足\n\n```bash\n# 设置 JVM 堆内存\ndocker run -d \\\n  --name elasticsearch \\\n  -e \"ES_JAVA_OPTS=-Xms512m -Xmx512m\" \\\n  # ... 其他参数\n```\n\n### 2. 插件版本不匹配\n\n确保 Elasticsearch 版本与 IK 插件版本匹配：\n- ES 8.4.1 → IK 8.4.1\n- ES 8.15.0 → IK 8.15.0\n\n### 3. 权限问题\n\n```bash\n# 设置数据目录权限\nsudo chown -R 1000:1000 \u002Fpath\u002Fto\u002Fes\u002Fdata\n```\n\n## 性能优化\n\n### 1. 系统配置\n\n```bash\n# 增加虚拟内存\necho 'vm.max_map_count=262144' >> \u002Fetc\u002Fsysctl.conf\nsysctl -p\n```\n\n### 2. 容器资源限制\n\n```bash\ndocker run -d \\\n  --name elasticsearch \\\n  --memory=\"2g\" \\\n  --cpus=\"2.0\" \\\n  # ... 其他参数\n```\n\n## 监控和维护\n\n### 查看集群状态\n\n```bash\ncurl -u elastic:your_password_here http:\u002F\u002Fyour_server_ip:9200\u002F_cluster\u002Fhealth\n```\n\n### 查看索引信息\n\n```bash\ncurl -u elastic:your_password_here http:\u002F\u002Fyour_server_ip:9200\u002F_cat\u002Findices\n```\n\n### 日志查看\n\n```bash\ndocker logs elasticsearch\n```\n\n## 总结\n\n通过 Docker 部署 Elasticsearch 可以快速搭建搜索服务，配合 IK 分词插件能够很好地支持中文搜索。在实际使用中，需要根据业务需求调整配置参数，确保系统稳定运行。\n\n记住在生产环境中：\n- 启用 SSL 加密\n- 设置强密码\n- 配置防火墙规则\n- 定期备份数据\n- 监控系统性能\n\n希望这篇文章能帮助你快速上手 Elasticsearch 的部署和配置！","ES",0,"https:\u002F\u002Fblog4-1316398321.cos.ap-nanjing.myqcloud.com\u002Fblog5\u002F20250825122458__火车站2024-08-06_08_15_26.png",[14,10],"GO",false,{"id":17,"title":18,"title_en":19},30,"解决翻译服务破坏Markdown格式的问题","Solve the problem of translation services destroying the Markdown format",{"id":21,"title":22,"title_en":23},32,"在线平台个性化推荐","Personalized recommendation on online platform","2025-10-14T10:56:43+08:00"]