예제 #1
0
 public TermsAggregator(
     String name,
     AggregatorFactories factories,
     AggregationContext context,
     Aggregator parent,
     BucketCountThresholds bucketCountThresholds,
     Terms.Order order,
     SubAggCollectionMode collectMode,
     List<Reducer> reducers,
     Map<String, Object> metaData)
     throws IOException {
   super(name, factories, context, parent, reducers, metaData);
   this.bucketCountThresholds = bucketCountThresholds;
   this.order = InternalOrder.validate(order, this);
   this.collectMode = collectMode;
   // Don't defer any child agg if we are dependent on it for pruning results
   if (order instanceof Aggregation) {
     AggregationPath path = ((Aggregation) order).path();
     aggsUsedForSorting.add(path.resolveTopmostAggregator(this));
   } else if (order instanceof CompoundOrder) {
     CompoundOrder compoundOrder = (CompoundOrder) order;
     for (Terms.Order orderElement : compoundOrder.orderElements()) {
       if (orderElement instanceof Aggregation) {
         AggregationPath path = ((Aggregation) orderElement).path();
         aggsUsedForSorting.add(path.resolveTopmostAggregator(this));
       }
     }
   }
 }