概述:
aggregation聚合文档指定字段,在查询的时候知道文档的docId,那么取对应字段值用到了docvalue(知识点1),取到值后保存一个term-function映射map里,比如docCount(知识点二),因为多segment,所以只能每个segment内部维护一个,shard层面根据全局oriId再合并。又因为es多shard,所以再fetchPhase阶段合并多个shard的aggregation,排序agg结果并返回。
源码入口
已知:es search再transport层面的入口类为:TransportSearchAction,默认searchType为QUERY_THEN_FETCH.
可得到:search action为:SearchQueryThenFetchAsyncAction
search阶段:
QueryPhase.java
LongTermsAggregator.java
在这里插入图片描述