elasticsearch aggregation 过程(未完)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch aggregation 过程(未完)相关的知识,希望对你有一定的参考价值。

在查询过程中,ES是将整个查询分成几个阶段的,大体如下:

  • QueryPhase

  • rescorePhase

  • suggestPhase

  • aggregationPhase

  • FetchPhase

对于全文检索,可能还有DFSPhase。从源代码QueryPhase 类可以看出

@Override
    public void execute(SearchContext searchContext) throws QueryPhaseExecutionException {
         //创建AggregationContext,
        //初始化所有的Aggregator
        aggregationPhase.preProcess(searchContext);
        //实际query,还有聚合操作其实是在这部完成的
        boolean rescore = execute(searchContext, searchContext.searcher());

        //如果是全文检索,并且需要打分
        if (rescore) { // only if we do a regular search
            rescorePhase.execute(searchContext);
        }
        suggestPhase.execute(searchContext);
         //获取聚合结果
        aggregationPhase.execute(searchContext);

        if (searchContext.getProfilers() != null) {
            List<ProfileShardResult> shardResults = Profiler.buildShardResults(searchContext.getProfilers().getProfilers());
            searchContext.queryResult().profileResults(shardResults);
        }
    }


以上是关于elasticsearch aggregation 过程(未完)的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch:Aggregation 简介

分析Elasticsearch的Aggregation有感(一)

elasticsearch aggregation - 桶的精确计数

elasticsearch aggregation 过程(未完)

elasticsearch aggregation 缓存

ElasticSearch--aggregations聚合分析