Elasticsearch 从入门到实战:文档聚合操作及总结

四、文档操作:数据的增删改查

4.1 添加文档

文档(Document)是索引中的最小数据单元,使用 `POST` 或 `PUT` 添加:

```json

POST /products/_doc/1

{

"name": "华为Mate50 Pro",

"price": 6999.0,

"category": "手机",

"create_time": "2023-10-01"

}

```

4.2 查询文档

  • 根据ID查询:

```bash

GET /products/_doc/1

```

  • 条件查询(查找价格低于7000的手机):

```json

GET /products/_search

{

"query": {

"bool": {

"must": [

{ "term": { "category": "手机" } },

{ "range": { "price": { "lt": 7000 } } }

]

}

}

}

```

4.3 更新与删除文档

```json

POST /products/_update/1

{

"doc": {

"price": 6599.0

}

}

DELETE /products/_doc/1

```

五、数据聚合:挖掘数据的深层价值

聚合(Aggregation)是 ES 的杀手级功能,支持多维数据分析。

5.1 指标聚合:统计基础数值

```json

GET /products/_search

{

"size": 0,

"aggs": {

"avg_price": { "avg": { "field": "price" } },

"max_price": { "max": { "field": "price" } }

}

}

```

5.2 桶聚合:分组统计

按商品类别分组,统计每个类别的商品数量:

```json

GET /products/_search

{

"size": 0,

"aggs": {

"category_count": {

"terms": { "field": "category" }

}

}

}

```

5.3 嵌套聚合:复杂分析场景

统计每个商品类别下的平均价格:

```json

GET /products/_search

{

"size": 0,

"aggs": {

"category_group": {

"terms": { "field": "category" },

"aggs": {

"avg_price": { "avg": { "field": "price" } }

}

}

}

}

```

六、最佳实践与常见问题

6.1 性能优化建议

  • 合理设置分片数:分片过多会导致资源浪费,过少影响并发。

  • 冷热数据分离:使用 ILM(索引生命周期管理)自动迁移旧数据。

  • 避免大结果集:使用 `scroll` API 分页查询海量数据。

6.2 常见问题排查

  • 脑裂问题:配置 `discovery.zen.minimum_master_nodes` 避免集群分裂。

  • 索引只读:磁盘空间不足时,ES 会自动将索引设为只读模式。

七、总结

Elasticsearch 的强大不仅在于其检索速度,更在于其灵活的数据分析能力。无论是构建实时日志监控系统,还是实现复杂的商业智能分析,ES 都能提供高效的解决方案。

相关推荐
一生了无挂28 分钟前
Java处理JSON技巧教学(从基础到高阶实战全覆盖)
java·开发语言·json
李白的天不白1 小时前
使用 SmartAdmin 进行前后端开发
java·前端
swordbob1 小时前
Spring 单例 Bean 是线程安全的吗?
java·开发语言
2601_951643772 小时前
Python第一,Java跌出前三,C语言杀回来了
java·c语言·python·编程语言排行·技术趋势
IT 行者4 小时前
GitHub Spec Kit 实战(五):/speckit.tasks 怎么拆——Spec Kit 五部曲收官
java·ai编程·claude
(Charon)4 小时前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言
就改了4 小时前
Zipkin 快速上手部署与接入实战
微服务·zipkin·微服务链路追踪
Yeats_Liao4 小时前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis
JiaHao汤4 小时前
分布式事务方案全景:从理论到 Seata 落地
java·分布式·spring·spring cloud
色空大师5 小时前
【debug调试详解-idea】
java·ide·intellij-idea·调试·远程调试