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 class
AggregatorFactory.MultiBucketAggregatorWrapper
-
Field Summary
Fields Modifier and Type Field Description protected SearchContext
context
protected AggregatorFactories
factories
protected java.util.Map<java.lang.String,java.lang.Object>
metaData
protected java.lang.String
name
protected 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 Aggregator
asMultiBucketAggregator(AggregatorFactory<?> factory, SearchContext context, Aggregator parent)
Utility method.Aggregator
create(Aggregator parent, boolean collectsFromSingleBucket)
Creates the aggregatorprotected abstract Aggregator
createInternal(Aggregator parent, boolean collectsFromSingleBucket, java.util.List<PipelineAggregator> pipelineAggregators, java.util.Map<java.lang.String,java.lang.Object> metaData)
void
doValidate()
AggregatorFactory<?>
getParent()
java.lang.String
name()
-
-
-
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.IOException
Constructs 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 with0
as 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 anAggregatorFactory
that createsAggregator
s that only know how to collect bucket0
, this returns an aggregator that can collect any bucket.- Throws:
java.io.IOException
-
-