Class AggregatorFactory<AF extends AggregatorFactory<AF>>
- java.lang.Object
-
- org.elasticsearch.search.aggregations.AggregatorFactory<AF>
-
- Direct Known Subclasses:
AdjacencyMatrixAggregatorFactory,FilterAggregatorFactory,FiltersAggregatorFactory,GlobalAggregatorFactory,MultiValuesSourceAggregatorFactory,NestedAggregatorFactory,ReverseNestedAggregatorFactory,SamplerAggregatorFactory,ScriptedMetricAggregatorFactory,SignificantTextAggregatorFactory,TopHitsAggregatorFactory,ValuesSourceAggregatorFactory
public abstract class AggregatorFactory<AF extends AggregatorFactory<AF>> extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAggregatorFactory.MultiBucketAggregatorWrapper
-
Field Summary
Fields Modifier and Type Field Description protected SearchContextcontextprotected AggregatorFactoriesfactoriesprotected java.util.Map<java.lang.String,java.lang.Object>metaDataprotected java.lang.Stringnameprotected AggregatorFactory<?>parent
-
Constructor Summary
Constructors Constructor Description AggregatorFactory(java.lang.String name, SearchContext context, AggregatorFactory<?> parent, AggregatorFactories.Builder subFactoriesBuilder, java.util.Map<java.lang.String,java.lang.Object> metaData)Constructs a new aggregator factory.
-
Method Summary
Modifier and Type Method Description protected static AggregatorasMultiBucketAggregator(AggregatorFactory<?> factory, SearchContext context, Aggregator parent)Utility method.Aggregatorcreate(Aggregator parent, boolean collectsFromSingleBucket)Creates the aggregatorprotected abstract AggregatorcreateInternal(Aggregator parent, boolean collectsFromSingleBucket, java.util.List<PipelineAggregator> pipelineAggregators, java.util.Map<java.lang.String,java.lang.Object> metaData)voiddoValidate()AggregatorFactory<?>getParent()java.lang.Stringname()
-
-
-
Field Detail
-
name
protected final java.lang.String name
-
parent
protected final AggregatorFactory<?> parent
-
factories
protected final AggregatorFactories factories
-
metaData
protected final java.util.Map<java.lang.String,java.lang.Object> metaData
-
context
protected final SearchContext context
-
-
Constructor Detail
-
AggregatorFactory
public AggregatorFactory(java.lang.String name, SearchContext context, AggregatorFactory<?> parent, AggregatorFactories.Builder subFactoriesBuilder, java.util.Map<java.lang.String,java.lang.Object> metaData) throws java.io.IOExceptionConstructs a new aggregator factory.- Parameters:
name- The aggregation name- Throws:
java.io.IOException- if an error occurs creating the factory
-
-
Method Detail
-
name
public java.lang.String name()
-
doValidate
public void doValidate()
-
createInternal
protected abstract Aggregator createInternal(Aggregator parent, boolean collectsFromSingleBucket, java.util.List<PipelineAggregator> pipelineAggregators, java.util.Map<java.lang.String,java.lang.Object> metaData) throws java.io.IOException
- Throws:
java.io.IOException
-
create
public final Aggregator create(Aggregator parent, boolean collectsFromSingleBucket) throws java.io.IOException
Creates the aggregator- Parameters:
parent- The parent aggregator (if this is a top level factory, the parent will benull)collectsFromSingleBucket- If true then the created aggregator will only be collected with0as a bucket ordinal. Some factories can take advantage of this in order to return more optimized implementations.- Returns:
- The created aggregator
- Throws:
java.io.IOException
-
getParent
public AggregatorFactory<?> getParent()
-
asMultiBucketAggregator
protected static Aggregator asMultiBucketAggregator(AggregatorFactory<?> factory, SearchContext context, Aggregator parent) throws java.io.IOException
Utility method. Given anAggregatorFactorythat createsAggregators that only know how to collect bucket0, this returns an aggregator that can collect any bucket.- Throws:
java.io.IOException
-
-