java.lang.Object
org.elasticsearch.search.aggregations.bucket.terms.LongKeyedBucketOrds
All Implemented Interfaces:
Closeable, AutoCloseable, Releasable
Direct Known Subclasses:
LongKeyedBucketOrds.FromMany, LongKeyedBucketOrds.FromManySmall, LongKeyedBucketOrds.FromSingle

public abstract class LongKeyedBucketOrds extends Object implements Releasable
Maps owning bucket ordinals and long bucket keys to bucket ordinals.
  • Method Details

    • build

      public static LongKeyedBucketOrds build(BigArrays bigArrays, CardinalityUpperBound cardinality)
      Build a LongKeyedBucketOrds who's values have unknown bounds.
      Parameters:
      cardinality - - This should come from the owning aggregation, and is used as an upper bound on the owning bucket ordinals.
    • buildForValueRange

      public static LongKeyedBucketOrds buildForValueRange(BigArrays bigArrays, CardinalityUpperBound cardinality, long min, long max)
      Build a LongKeyedBucketOrds who's values have known bounds.
      Parameters:
      cardinality - - This should come from the owning aggregation, and is used as an upper bound on the owning bucket ordinals.
      min - - The minimum key value for this aggregation
      max - - The maximum key value for this aggregation
    • add

      public abstract long add(long owningBucketOrd, long value)
      Add the owningBucketOrd, value pair. Return the ord for their bucket if they have yet to be added, or -1-ord if they were already present.
    • bucketsInOrd

      public abstract long bucketsInOrd(long owningBucketOrd)
      Count the buckets in owningBucketOrd.

      Some aggregations expect this to be fast but most wouldn't mind particularly if it weren't.

    • find

      public abstract long find(long owningBucketOrd, long value)
      Find the owningBucketOrd, value pair. Return the ord for their bucket if they have been added or -1 if they haven't.
    • get

      public abstract long get(long ordinal)
      Returns the value currently associated with the bucket ordinal.
    • size

      public abstract long size()
      The number of collected buckets.
    • maxOwningBucketOrd

      public abstract long maxOwningBucketOrd()
      The maximum possible used owningBucketOrd.
    • decribe

      public abstract String decribe()
      Description used in profile results.
    • ordsEnum

      public abstract LongKeyedBucketOrds.BucketOrdsEnum ordsEnum(long owningBucketOrd)
      Build an iterator for buckets inside owningBucketOrd in order of increasing ord.

      When this is first returns it is "unpositioned" and you must call LongKeyedBucketOrds.BucketOrdsEnum.next() to move it to the first value.

    • keyOrderedIterator

      public Iterator<Long> keyOrderedIterator(long owningBucketOrd)
      Return an iterator for all keys in the given owning bucket, ordered in natural sort order. This is suitable for aligning buckets across different instances of an aggregation.
      Parameters:
      owningBucketOrd - Only return keys that occured under this owning bucket
      Returns:
      a sorted iterator of long key values
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface Releasable