Class BestBucketsDeferringCollector

java.lang.Object
All Implemented Interfaces:
org.apache.lucene.search.Collector

public class BestBucketsDeferringCollector
extends DeferringBucketCollector
A specialization of DeferringBucketCollector that collects all matches and then is able to replay a given subset of buckets which represent the survivors from a pruning process performed by the aggregator that owns this collector.
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.elasticsearch.search.aggregations.bucket.DeferringBucketCollector

    DeferringBucketCollector.WrappedAggregator
  • Field Summary

    Fields inherited from class org.elasticsearch.search.aggregations.BucketCollector

    NO_OP_COLLECTOR
  • Constructor Summary

    Constructors
    Constructor Description
    BestBucketsDeferringCollector​(org.apache.lucene.search.Query topLevelQuery, org.apache.lucene.search.IndexSearcher searcher, boolean isGlobal)
    Sole constructor.
  • Method Summary

    Modifier and Type Method Description
    LeafBucketCollector getLeafCollector​(org.apache.lucene.index.LeafReaderContext ctx)  
    void postCollection()
    Post-collection callback.
    void preCollection()
    Pre collection callback.
    void prepareSelectedBuckets​(long... selectedBuckets)
    Replay the wrapped collector, but only on a selection of buckets.
    void rewriteBuckets​(java.util.function.LongUnaryOperator howToRewrite)
    Merge or prune the selected buckets.
    org.apache.lucene.search.ScoreMode scoreMode()  
    void setDeferredCollector​(java.lang.Iterable<BucketCollector> deferredCollectors)
    Set the deferred collectors.
    Aggregator wrap​(Aggregator in)
    Wrap the provided aggregator so that it behaves (almost) as if it had been collected directly.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BestBucketsDeferringCollector

      public BestBucketsDeferringCollector​(org.apache.lucene.search.Query topLevelQuery, org.apache.lucene.search.IndexSearcher searcher, boolean isGlobal)
      Sole constructor.
      Parameters:
      isGlobal - Whether this collector visits all documents (global context)
  • Method Details

    • scoreMode

      public org.apache.lucene.search.ScoreMode scoreMode()
    • setDeferredCollector

      public void setDeferredCollector​(java.lang.Iterable<BucketCollector> deferredCollectors)
      Set the deferred collectors.
      Specified by:
      setDeferredCollector in class DeferringBucketCollector
    • getLeafCollector

      public 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 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 void postCollection() throws java.io.IOException
      Description copied from class: BucketCollector
      Post-collection callback.
      Specified by:
      postCollection in class BucketCollector
      Throws:
      java.io.IOException
    • prepareSelectedBuckets

      public void prepareSelectedBuckets​(long... selectedBuckets) throws java.io.IOException
      Replay the wrapped collector, but only on a selection of buckets.
      Specified by:
      prepareSelectedBuckets in class DeferringBucketCollector
      Throws:
      java.io.IOException
    • wrap

      public Aggregator wrap​(Aggregator in)
      Wrap the provided aggregator so that it behaves (almost) as if it had been collected directly.
      Overrides:
      wrap in class DeferringBucketCollector
    • rewriteBuckets

      public void rewriteBuckets​(java.util.function.LongUnaryOperator howToRewrite)
      Merge or prune the selected buckets.

      This process rebuilds some packed structures and is O(number_of_collected_docs) so do your best to skip calling it unless you need it.

      Parameters:
      howToRewrite - a unary operator which maps a bucket's ordinal to the ordinal it has after this process. If a bucket's ordinal is mapped to -1 then the bucket is removed entirely.