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 - 桶的精确计数