Class MapStringTermsAggregator
- All Implemented Interfaces:
Closeable
,AutoCloseable
,org.apache.lucene.search.Collector
,org.elasticsearch.core.Releasable
GlobalOrdinalsStringTermsAggregator
.-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
static interface
Abstraction on top of building collectors to fetch values soterms
,significant_terms
, andsignificant_text
can share a bunch of aggregation code.static class
Fetch values from aValuesSource
.Nested classes/interfaces inherited from class org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator
TermsAggregator.BucketCountThresholds
Nested classes/interfaces inherited from class org.elasticsearch.search.aggregations.bucket.BucketsAggregator
BucketsAggregator.BucketBuilderForFixedCount<B>, BucketsAggregator.BucketBuilderForVariable<B>, BucketsAggregator.ResultBuilderForVariable<B>, BucketsAggregator.SingleBucketResultBuilder
Nested classes/interfaces inherited from class org.elasticsearch.search.aggregations.Aggregator
Aggregator.BucketComparator, Aggregator.Parser, Aggregator.SubAggCollectionMode
-
Field Summary
Fields inherited from class org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator
aggsUsedForSorting, bucketCountThresholds, collectMode, format, order, partiallyBuiltBucketComparator
Fields inherited from class org.elasticsearch.search.aggregations.bucket.BucketsAggregator
docCountProvider
Fields inherited from class org.elasticsearch.search.aggregations.AggregatorBase
collectableSubAggregators, DEFAULT_WEIGHT, name, parent, subAggregators
Fields inherited from class org.elasticsearch.search.aggregations.BucketCollector
NO_OP_COLLECTOR
-
Constructor Summary
ConstructorDescriptionMapStringTermsAggregator(String name, AggregatorFactories factories, MapStringTermsAggregator.CollectorSource collectorSource, Function<MapStringTermsAggregator,org.elasticsearch.search.aggregations.bucket.terms.MapStringTermsAggregator.ResultStrategy<?,?>> resultStrategy, BucketOrder order, DocValueFormat format, TermsAggregator.BucketCountThresholds bucketCountThresholds, IncludeExclude.StringFilter includeExclude, AggregationContext context, Aggregator parent, Aggregator.SubAggCollectionMode collectionMode, boolean showTermDocCountError, CardinalityUpperBound cardinality, Map<String,Object> metadata)
-
Method Summary
Modifier and TypeMethodDescriptionbuildAggregations(long[] owningBucketOrds)
Build the results of this aggregation.Build an empty aggregation.protected SignificantStringTerms
buildEmptySignificantTermsAggregation(long subsetSize, SignificanceHeuristic significanceHeuristic)
protected StringTerms
void
Collect debug information to add to the profiling results.void
doClose()
Release instance-specific data.getLeafCollector(org.apache.lucene.index.LeafReaderContext ctx, LeafBucketCollector sub)
Collect results for this leaf.org.apache.lucene.search.ScoreMode
Most aggregators don't need scores, make sure to extend this method if your aggregator needs them.Methods inherited from class org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator
aggsUsedForSorting, descendsFromNestedAggregator, shouldDefer
Methods inherited from class org.elasticsearch.search.aggregations.bucket.DeferableBucketAggregator
buildDeferringCollector, deferringCollector, doPreCollection, prepareSubAggs
Methods inherited from class org.elasticsearch.search.aggregations.bucket.BucketsAggregator
bucketComparator, bucketDocCount, buildAggregationsForFixedBucketCount, buildAggregationsForSingleBucket, buildAggregationsForVariableBuckets, buildSubAggsForAllBuckets, buildSubAggsForBuckets, buildSubAggsForBuckets, close, collectBucket, collectExistingBucket, descendsFromGlobalAggregator, getDocCounts, grow, incrementBucketDocCount, maxBucketOrd, preGetSubLeafCollectors, resolveSortPath, rewriteBuckets
Methods inherited from class org.elasticsearch.search.aggregations.AggregatorBase
addRequestCircuitBreakerBytes, bigArrays, buildEmptySubAggregations, doPostCollection, getLeafCollector, metadata, name, parent, pointReaderIfAvailable, postCollection, preCollection, searcher, subAggregator, subAggregators, topLevelQuery, toString
Methods inherited from class org.elasticsearch.search.aggregations.Aggregator
buildTopLevel, resolveSortPathOnValidAgg
-
Field Details
-
showTermDocCountError
protected final boolean showTermDocCountError
-
-
Constructor Details
-
MapStringTermsAggregator
public MapStringTermsAggregator(String name, AggregatorFactories factories, MapStringTermsAggregator.CollectorSource collectorSource, Function<MapStringTermsAggregator,org.elasticsearch.search.aggregations.bucket.terms.MapStringTermsAggregator.ResultStrategy<?,?>> resultStrategy, BucketOrder order, DocValueFormat format, TermsAggregator.BucketCountThresholds bucketCountThresholds, IncludeExclude.StringFilter includeExclude, AggregationContext context, Aggregator parent, Aggregator.SubAggCollectionMode collectionMode, boolean showTermDocCountError, CardinalityUpperBound cardinality, Map<String,Object> metadata) throws IOException- Throws:
IOException
-
-
Method Details
-
scoreMode
public org.apache.lucene.search.ScoreMode scoreMode()Description copied from class:AggregatorBase
Most aggregators don't need scores, make sure to extend this method if your aggregator needs them.- Specified by:
scoreMode
in interfaceorg.apache.lucene.search.Collector
- Overrides:
scoreMode
in classAggregatorBase
-
getLeafCollector
public LeafBucketCollector getLeafCollector(org.apache.lucene.index.LeafReaderContext ctx, LeafBucketCollector sub) throws IOExceptionDescription copied from class:AggregatorBase
Collect results for this leaf.Most Aggregators will return a custom
LeafBucketCollector
that collects document information for every hit. Callers of this method will make sure to callcollect
for every hit. So anyAggregator
that returns a customer LeafBucketCollector from this method runs at bestO(hits)
time. See thesum
Aggregator for a fairly strait forward example of this.Some Aggregators are able to correctly collect results on their own, without being iterated by the top level query or the rest of the aggregations framework. These aggregations collect what they need by calling methods on
LeafReaderContext
and then they returnLeafBucketCollector.NO_OP_COLLECTOR
to signal that they've done their own collection. These aggregations can do better thanO(hits)
. See themin
Aggregator for an example of an aggregation that does this. It happens to run in constant time in some cases.In other cases
MinAggregator
can't get correct results by taking the constant time path so instead it returns a customLeafBucketCollector
. This is fairly common for aggregations that have these fast paths because most of these fast paths are only possible when the aggregation is at the root of the tree.Its also useful to look at the
filters
Aggregator chooses whether or not it can use the fast path before building the Aggregator rather than on each leaf. Either is fine.- Specified by:
getLeafCollector
in classAggregatorBase
- Throws:
IOException
-
buildAggregations
Description copied from class:Aggregator
Build the results of this aggregation.- Specified by:
buildAggregations
in classAggregator
- Parameters:
owningBucketOrds
- the ordinals of the buckets that we want to collect from this aggregation- Returns:
- the results for each ordinal, in the same order as the array of ordinals
- Throws:
IOException
-
buildEmptyAggregation
Description copied from class:Aggregator
Build an empty aggregation.- Specified by:
buildEmptyAggregation
in classAggregator
-
collectDebugInfo
Description copied from class:Aggregator
Collect debug information to add to the profiling results. This will only be called if the aggregation is being profiled.Well behaved implementations will always call the superclass implementation just in case it has something interesting. They will also only add objects which can be serialized with
StreamOutput.writeGenericValue(Object)
andXContentBuilder.value(Object)
. And they'll have an integration test.- Overrides:
collectDebugInfo
in classDeferableBucketAggregator
-
doClose
public void doClose()Description copied from class:AggregatorBase
Release instance-specific data.- Overrides:
doClose
in classAggregatorBase
-
buildEmptyTermsAggregation
-
buildEmptySignificantTermsAggregation
protected SignificantStringTerms buildEmptySignificantTermsAggregation(long subsetSize, SignificanceHeuristic significanceHeuristic)
-