Class ProfilingLeafBucketCollector

All Implemented Interfaces:

public class ProfilingLeafBucketCollector extends LeafBucketCollector
  • Constructor Details

  • Method Details

    • collect

      public void collect(int doc, long bucket) throws IOException
      Description copied from class: LeafBucketCollector
      Collect the given doc in the bucket owned by owningBucketOrd.

      The implementation of this method metric aggregations is generally something along the lines of

       array[owningBucketOrd] += loadValueFromDoc(doc)

      Bucket aggregations have more trouble because their job is to make new ordinals. So their implementation generally looks kind of like

       long myBucketOrd = mapOwningBucketAndValueToMyOrd(owningBucketOrd, loadValueFromDoc(doc));
       collectBucket(doc, myBucketOrd);

      Some bucket aggregations "know" how many ordinals each owning ordinal needs so they can map "densely". The range aggregation, for example, can perform this mapping with something like:

       return rangeCount * owningBucketOrd + matchingRange(value);
      Other aggregations don't know how many buckets will fall into any particular owning bucket. The terms aggregation, for example, uses LongKeyedBucketOrds which amounts to a hash lookup.
      Specified by:
      collect in class LeafBucketCollector
    • setScorer

      public void setScorer( scorer) throws IOException
      Specified by:
      setScorer in interface
      setScorer in class LeafBucketCollector
    • isNoop

      public boolean isNoop()
      Description copied from class: LeafBucketCollector
      Does this collector collect anything? If this returns true we can safely just never call LeafBucketCollector.collect(int, long).
      isNoop in class LeafBucketCollector