在 Elasticsearch 8.1.0 中,聚合(Aggregations)功能的执行链路可以分为“请求解析 → 分片级聚合 → 协调节点汇总 → 结果返回”四个阶段。下面按时间顺序给出**一次 terms 桶聚合**在源码层面的关键调用路径(涉及的重要类与方法),方便你快速定位代码。所有类均位于 `org.elasticsearch.search.aggregations` 或其子包下。
--------------------------------
1. 请求解析与 DSL 构建
- `SearchModule.registerAggregations()` – 启动时将内置聚合解析器注册到 NamedXContentRegistry。
- `AggregationsAggregationBuilder.parse()` – Rest 层解析 `aggs` 段,生成 `TermsAggregationBuilder`。
- `SearchSourceBuilder#aggregation(AB)` – 把聚合构建器挂到 search request 上。
--------------------------------
2. Coordinator(接收节点)准备阶段
- `TransportSearchAction.doExecute()` – 判断是否需要跨分片,创建 `SearchTask`。
- `SearchService#parseSource()` → `AggregatorFactories.Builder.build()` – 将 `TermsAggregationBuilder` 编译为 `AggregatorFactory`(真正执行对象)。
- `SearchService.createContext()` – 构建 `SearchContext`,内部持有 `AggregatorFactories`。
--------------------------------
3. 分片级聚合(Shard request)

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



