1、聚合为什么慢?
大多数时候对单个字段的聚合查询还是非常快的, 但是当需要同时聚合多个字段时,就可能会产生大量的分组,最终结果就是占用 es 大量内存,从而导致 OOM 的情况发生。
实践应用发现,以下情况都会比较慢:
1)待聚合文档数比较多(千万、亿、十亿甚至更多);
2)聚合条件比较复杂(多重条件聚合);
3)全量聚合(翻页的场景用)。
2、聚合优化方案探讨
优化方案一:默认深度优先聚合改为广度优先聚合。
"collect_mode" : "breadth_first"- depth_first 直接进行子聚合的计算
- breadth_first 先计算出当前聚合的结果,针对这个结果在对子聚合进行计算。
优化方案二: 每一层terms aggregation内部加一个 “execution_hint”: “map”。
"execution_h继续阅读与本文标签相同的文章
下一篇 :
Android 多线程编程
-
nacos部署使用mysql作为数据库
2026-05-24栏目: 教程
-
LeetCode 561:数组拆分 I Array Partition I
2026-05-24栏目: 教程
-
玩转阿里云函数计算(三)——一键配置 SpringBoot 应用
2026-05-24栏目: 教程
-
nginx 配置CORS该如何允许配置?
2026-05-24栏目: 教程
-
如何使用迁云工具迁移服务器到阿里云?
2026-05-24栏目: 教程
