Class AggregatorFactory<AF extends AggregatorFactory<AF>>

    • Field Detail

      • name

        protected final java.lang.String name
      • metaData

        protected final java.util.Map<java.lang.String,java.lang.Object> metaData
    • 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 be null)
        collectsFromSingleBucket - If true then the created aggregator will only be collected with 0 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