java.io.Closeable
, java.lang.AutoCloseable
, org.apache.lucene.search.Collector
, Releasable
GlobalOrdinalsStringTermsAggregator
, LongTermsAggregator
, StringTermsAggregator
public abstract class TermsAggregator extends DeferableBucketAggregator
Modifier and Type | Class | Description |
---|---|---|
static class |
TermsAggregator.BucketCountThresholds |
Aggregator.Parser, Aggregator.SubAggCollectionMode
Modifier and Type | Field | Description |
---|---|---|
protected java.util.Set<Aggregator> |
aggsUsedForSorting |
|
protected TermsAggregator.BucketCountThresholds |
bucketCountThresholds |
|
protected Aggregator.SubAggCollectionMode |
collectMode |
|
protected DocValueFormat |
format |
|
protected BucketOrder |
order |
collectableSubAggregators, context, DEFAULT_WEIGHT, name, parent, subAggregators
NO_OP_COLLECTOR
Constructor | Description |
---|---|
TermsAggregator(java.lang.String name,
AggregatorFactories factories,
SearchContext context,
Aggregator parent,
TermsAggregator.BucketCountThresholds bucketCountThresholds,
BucketOrder order,
DocValueFormat format,
Aggregator.SubAggCollectionMode collectMode,
java.util.List<PipelineAggregator> pipelineAggregators,
java.util.Map<java.lang.String,java.lang.Object> metaData) |
Modifier and Type | Method | Description |
---|---|---|
java.util.Comparator<MultiBucketsAggregation.Bucket> |
bucketComparator(AggregationPath path,
boolean asc) |
Internal Optimization for ordering
InternalTerms.Bucket s by a sub aggregation. |
protected boolean |
shouldDefer(Aggregator aggregator) |
This method should be overridden by subclasses that want to defer
calculation of a child aggregation until a first pass is complete and a
set of buckets has been pruned.
|
buildAggregation, buildEmptyAggregation, descendsFromBucketAggregator
addRequestCircuitBreakerBytes, buildEmptySubAggregations, context, doClose, doPostCollection, getLeafCollector, getLeafCollector, metaData, name, needsScores, parent, pipelineAggregators, postCollection, preCollection, preGetSubLeafCollectors, subAggregator, subAggregators, toString
wrap
bucketAggregations, bucketDocCount, bucketEmptyAggregations, close, collectBucket, collectExistingBucket, consumeBucketsAndMaybeBreak, getDocCounts, grow, incrementBucketDocCount, maxBucketOrd
descendsFromGlobalAggregator, doPreCollection, getDeferringCollector, runDeferredCollections
protected final DocValueFormat format
protected final TermsAggregator.BucketCountThresholds bucketCountThresholds
protected final BucketOrder order
protected final java.util.Set<Aggregator> aggsUsedForSorting
protected final Aggregator.SubAggCollectionMode collectMode
public TermsAggregator(java.lang.String name, AggregatorFactories factories, SearchContext context, Aggregator parent, TermsAggregator.BucketCountThresholds bucketCountThresholds, BucketOrder order, DocValueFormat format, Aggregator.SubAggCollectionMode collectMode, java.util.List<PipelineAggregator> pipelineAggregators, java.util.Map<java.lang.String,java.lang.Object> metaData) throws java.io.IOException
java.io.IOException
public java.util.Comparator<MultiBucketsAggregation.Bucket> bucketComparator(AggregationPath path, boolean asc)
InternalTerms.Bucket
s by a sub aggregation.
in this phase, if the order is based on sub-aggregations, we need to use a different comparator to avoid constructing buckets for ordering purposes (we can potentially have a lot of buckets and building them will cause loads of redundant object constructions). The "special" comparators here will fetch the sub aggregation values directly from the sub aggregators bypassing bucket creation. Note that the comparator attached to the order will still be used in the reduce phase of the Aggregation.
path
- determines which sub aggregation to use for ordering.asc
- true
for ascending order, false
for descending.Comparator
to order InternalTerms.Bucket
s in the desired order.protected boolean shouldDefer(Aggregator aggregator)
DeferableBucketAggregator
DeferableBucketAggregator.runDeferredCollections(long...)
for the selected set
of buckets that survive the pruning.shouldDefer
in class DeferableBucketAggregator
aggregator
- the child aggregator