Class AdaptingAggregator

java.lang.Object
All Implemented Interfaces:
java.io.Closeable, java.lang.AutoCloseable, org.apache.lucene.search.Collector, Releasable

public abstract class AdaptingAggregator
extends Aggregator
An Aggregator that delegates collection to another Aggregator and then translates its results into the results you'd expect from another aggregation.
  • Constructor Details

  • Method Details

    • adapt

      protected abstract InternalAggregation adapt​(InternalAggregation delegateResult)
      Adapt the result from the collecting Aggregator into the result expected by this Aggregator.
    • close

      public final void close()
    • scoreMode

      public final org.apache.lucene.search.ScoreMode scoreMode()
    • name

      public final java.lang.String name()
      Description copied from class: Aggregator
      Return the name of this aggregator.
      Specified by:
      name in class Aggregator
    • parent

      public final Aggregator parent()
      Description copied from class: Aggregator
      Return the parent aggregator.
      Specified by:
      parent in class Aggregator
    • subAggregator

      public final Aggregator subAggregator​(java.lang.String name)
      Description copied from class: Aggregator
      Return the sub aggregator with the provided name.
      Specified by:
      subAggregator in class Aggregator
    • getLeafCollector

      public final LeafBucketCollector getLeafCollector​(org.apache.lucene.index.LeafReaderContext ctx) throws java.io.IOException
      Specified by:
      getLeafCollector in interface org.apache.lucene.search.Collector
      Specified by:
      getLeafCollector in class BucketCollector
      Throws:
      java.io.IOException
    • preCollection

      public final void preCollection() throws java.io.IOException
      Description copied from class: BucketCollector
      Pre collection callback.
      Specified by:
      preCollection in class BucketCollector
      Throws:
      java.io.IOException
    • postCollection

      public final void postCollection() throws java.io.IOException
      Description copied from class: BucketCollector
      Post-collection callback.
      Specified by:
      postCollection in class BucketCollector
      Throws:
      java.io.IOException
    • buildAggregations

      public final InternalAggregation[] buildAggregations​(long[] owningBucketOrds) throws java.io.IOException
      Description copied from class: Aggregator
      Build the results of this aggregation.
      Specified by:
      buildAggregations in class Aggregator
      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:
      java.io.IOException
    • buildEmptyAggregation

      public final InternalAggregation buildEmptyAggregation()
      Description copied from class: Aggregator
      Build an empty aggregation.
      Specified by:
      buildEmptyAggregation in class Aggregator
    • subAggregators

      public final Aggregator[] subAggregators()
      Description copied from class: Aggregator
      Get the aggregators running under this one.
      Specified by:
      subAggregators in class Aggregator
    • collectDebugInfo

      public void collectDebugInfo​(java.util.function.BiConsumer<java.lang.String,​java.lang.Object> add)
      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) and XContentBuilder.value(Object). And they'll have an integration test.

      Overrides:
      collectDebugInfo in class Aggregator
    • delegate

      public Aggregator delegate()