Module org.elasticsearch.server
Class InternalSingleBucketAggregation
java.lang.Object
org.elasticsearch.search.aggregations.InternalAggregation
org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation
- All Implemented Interfaces:
NamedWriteable,Writeable,Aggregation,SingleBucketAggregation,HasAggregations,ToXContent,ToXContentFragment
- Direct Known Subclasses:
InternalFilter,InternalGlobal,InternalMissing,InternalNested,InternalRandomSampler,InternalReverseNested,InternalSampler
public abstract class InternalSingleBucketAggregation
extends InternalAggregation
implements SingleBucketAggregation
A base class for all the single bucket aggregations.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.elasticsearch.search.aggregations.Aggregation
Aggregation.CommonFieldsNested classes/interfaces inherited from interface org.elasticsearch.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.ParamsNested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V> -
Field Summary
Fields inherited from class org.elasticsearch.search.aggregations.InternalAggregation
metadata, nameFields inherited from interface org.elasticsearch.search.aggregations.Aggregation
TYPED_KEYS_DELIMITERFields inherited from interface org.elasticsearch.xcontent.ToXContent
EMPTY, EMPTY_PARAMS -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedInternalSingleBucketAggregation(String name, long docCount, InternalAggregations aggregations, Map<String, Object> metadata) Creates a single bucket aggregation.protectedRead from a stream. -
Method Summary
Modifier and TypeMethodDescriptionRewrite the sub-aggregations in the buckets in this aggregation.create(InternalAggregations subAggregations) Create a new copy of thisAggregationwith the same settings as thisAggregationand contains the provided sub-aggregations.protected voiddoWriteTo(StreamOutput out) doXContentBody(XContentBuilder builder, ToXContent.Params params) booleanvoidforEachBucket(Consumer<InternalAggregations> consumer) Run a Consumer over all buckets in this aggregation.longprotected AggregatorReducergetLeaderReducer(AggregationReduceContext reduceContext, int size) Return an object that Reduces several aggregations to a single one.getProperty(List<String> path) inthashCode()protected booleanSignal the framework if the AggregatorReducer phase needs to be called when there is only one InternalAggregation.protected abstract InternalSingleBucketAggregationnewAggregation(String name, long docCount, InternalAggregations subAggregations) Create a new empty sub aggregation.final InternalAggregationreducePipelines(InternalAggregation reducedAggs, AggregationReduceContext reduceContext, PipelineAggregator.PipelineTree pipelineTree) Amulti-bucket agg needs to first reduce the buckets and *their* pipelines before allowing sibling pipelines to materialize.final SortValueGet value to use when sorting by this aggregation.final SortValueGet value to use when sorting by a descendant of this aggregation.Methods inherited from class org.elasticsearch.search.aggregations.InternalAggregation
canLeadReduction, finalizeSampling, getMetadata, getName, getProperty, getReducer, getType, readSize, toString, toXContent, writeSize, writeToMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.elasticsearch.search.aggregations.Aggregation
getMetadata, getName, getTypeMethods inherited from interface org.elasticsearch.common.io.stream.NamedWriteable
getWriteableNameMethods inherited from interface org.elasticsearch.xcontent.ToXContent
toXContentMethods inherited from interface org.elasticsearch.xcontent.ToXContentFragment
isFragment
-
Constructor Details
-
InternalSingleBucketAggregation
protected InternalSingleBucketAggregation(String name, long docCount, InternalAggregations aggregations, Map<String, Object> metadata) Creates a single bucket aggregation.- Parameters:
name- The aggregation name.docCount- The document count in the single bucket.aggregations- The already built sub-aggregations that are associated with the bucket.
-
InternalSingleBucketAggregation
Read from a stream.- Throws:
IOException
-
-
Method Details
-
doWriteTo
- Specified by:
doWriteToin classInternalAggregation- Throws:
IOException
-
getDocCount
public long getDocCount()- Specified by:
getDocCountin interfaceSingleBucketAggregation- Returns:
- The number of documents in this bucket
-
getAggregations
- Specified by:
getAggregationsin interfaceHasAggregations- Specified by:
getAggregationsin interfaceSingleBucketAggregation- Returns:
- The sub-aggregations of this bucket
-
create
Create a new copy of thisAggregationwith the same settings as thisAggregationand contains the provided sub-aggregations.- Parameters:
subAggregations- the buckets to use in the newAggregation- Returns:
- the new
Aggregation
-
newAggregation
protected abstract InternalSingleBucketAggregation newAggregation(String name, long docCount, InternalAggregations subAggregations) Create a new empty sub aggregation. This must be a new instance on each call. -
getLeaderReducer
Description copied from class:InternalAggregationReturn an object that Reduces several aggregations to a single one. This method is called whenInternalAggregation.canLeadReduction()returns true and expects an reducer that produces the right result.- Specified by:
getLeaderReducerin classInternalAggregation
-
reducePipelines
public final InternalAggregation reducePipelines(InternalAggregation reducedAggs, AggregationReduceContext reduceContext, PipelineAggregator.PipelineTree pipelineTree) Amulti-bucket agg needs to first reduce the buckets and *their* pipelines before allowing sibling pipelines to materialize.- Overrides:
reducePipelinesin classInternalAggregation
-
getProperty
- Specified by:
getPropertyin classInternalAggregation
-
doXContentBody
public XContentBuilder doXContentBody(XContentBuilder builder, ToXContent.Params params) throws IOException - Specified by:
doXContentBodyin classInternalAggregation- Throws:
IOException
-
sortValue
Description copied from class:InternalAggregationGet value to use when sorting by this aggregation.- Overrides:
sortValuein classInternalAggregation
-
sortValue
public final SortValue sortValue(AggregationPath.PathElement head, Iterator<AggregationPath.PathElement> tail) Description copied from class:InternalAggregationGet value to use when sorting by a descendant of this aggregation.- Overrides:
sortValuein classInternalAggregation
-
mustReduceOnSingleInternalAgg
protected boolean mustReduceOnSingleInternalAgg()Description copied from class:InternalAggregationSignal the framework if the AggregatorReducer phase needs to be called when there is only one InternalAggregation.- Specified by:
mustReduceOnSingleInternalAggin classInternalAggregation
-
copyWithRewritenBuckets
public InternalAggregation copyWithRewritenBuckets(Function<InternalAggregations, InternalAggregations> rewriter) Description copied from class:InternalAggregationRewrite the sub-aggregations in the buckets in this aggregation. Returns a copy of this InternalAggregation with the rewritten buckets, or, if there aren't any modifications to the buckets then this method will return this aggregation. Either way, it doesn't modify this aggregation.Implementers of this should call the
rewriteronce per bucket with its InternalAggregations. Therewritershould returnnullif it doen't have any rewriting to do or it should return a new InternalAggregations to make changs.The default implementation throws an exception because most aggregations don't have buckets in them. It should be overridden by aggregations that contain buckets. Implementers should respect the description above.
- Overrides:
copyWithRewritenBucketsin classInternalAggregation
-
forEachBucket
Description copied from class:InternalAggregationRun a Consumer over all buckets in this aggregation.- Overrides:
forEachBucketin classInternalAggregation
-
equals
- Overrides:
equalsin classInternalAggregation
-
hashCode
public int hashCode()- Overrides:
hashCodein classInternalAggregation
-