Elasticsearch 是一个分布式搜索和分析引擎,广泛用于日志管理、全文搜索和数据分析等场景。以下是一个详细的使用指南,包括安装、配置、基本操作和常见用法。
1. 安装 Elasticsearch
方法 1:使用 Docker 安装
这是最简便的方式,适合开发和测试环境。
启动单节点
- 创建一个
docker-compose.yml
文件: - 启动 Elasticsearch:
- 验证是否启动成功:
启动集群
对于多节点集群,可定义多个服务并配置 discovery.seed_hosts
和 cluster.name
。
方法 2:手动安装
- 下载并解压:
- Elasticsearch 官方下载页面
- 解压安装包:
- 启动 Elasticsearch:
- 验证服务是否运行:
2. 基本概念
核心概念
- 索引(Index):类似于数据库中的表,用于存储相关数据的集合。
- 文档(Document):类似于数据库中的一行,存储实际的数据(JSON 格式)。
- 分片(Shard):索引分为多个分片存储在不同的节点上。
- 副本(Replica):分片的副本,用于高可用性。
3. 基本操作
1. 创建索引
使用 PUT
请求创建一个索引:
带有映射(Mapping)的索引:
2. 添加文档
使用 POST
或 PUT
方法添加文档:
3. 查询文档
查询所有文档
条件查询
按条件查询(如名字为 John
):
分页查询
分页返回前 10 条:
4. 更新文档
部分更新:
5. 删除文档
删除特定文档:
删除索引:
4. 高级操作
1. 聚合查询
聚合计算平均年龄:
2. 全文搜索
模糊搜索 name
字段包含 jo
的文档:
3. 索引备份和恢复
创建快照仓库
备份索引
恢复索引
5. 日常运维
1. 检查集群状态
2. 查看节点信息
3. 查看分片状态
6. 常见问题
- 内存不足:确保分配足够的 JVM 内存(
config/jvm.options
)。 - 分片过多:优化分片数量,避免每个节点有过多的小分片。
- 磁盘空间不足:定期清理过期数据或增加存储容量。
通过这些步骤,您可以快速上手 Elasticsearch,并应用于日志分析、全文搜索或数据分析场景。