Class SortedNumericDocValues

java.lang.Object
org.apache.lucene.search.DocIdSetIterator
org.apache.lucene.index.SortedNumericDocValues
Direct Known Subclasses:
FilterSortedNumericDocValues

public abstract class SortedNumericDocValues extends DocIdSetIterator
A list of per-document numeric values, sorted according to Long.compare(long, long).
  • Constructor Details

    • SortedNumericDocValues

      protected SortedNumericDocValues()
      Sole constructor. (For invocation by subclass constructors, typically implicit.)
  • Method Details

    • nextValue

      public abstract long nextValue() throws IOException
      Iterates to the next value in the current document. Do not call this more than docValueCount() times for the document.
      Throws:
      IOException
    • docValueCount

      public abstract int docValueCount()
      Retrieves the number of values for the current document. This must always be greater than zero. It is illegal to call this method after advanceExact(int) returned false.
    • rangeIntoBitSet

      public void rangeIntoBitSet(int fromDoc, int toDoc, long minValue, long maxValue, FixedBitSet bitSet, int offset) throws IOException
      Fills a FixedBitSet with the doc IDs in [fromDoc, toDoc) whose sorted numeric values contain at least one value in [minValue, maxValue].

      The default implementation falls back to per-doc evaluation via advanceExact(int), docValueCount(), and nextValue(). Subclasses with random-access storage can override this to avoid per-doc virtual dispatch.

      Callers should not rely on the final iterator position after this method returns. Implementations may advance through some or all of the requested range.

      Parameters:
      fromDoc - first doc ID to evaluate (inclusive)
      toDoc - last doc ID to evaluate (exclusive)
      minValue - lower bound of the range (inclusive)
      maxValue - upper bound of the range (inclusive)
      bitSet - the bitset to fill
      offset - subtracted from each doc ID before setting the bit
      Throws:
      IOException
    • advanceExact

      public abstract boolean advanceExact(int target) throws IOException
      Advance the iterator to exactly target and return whether target has a value. target must be greater than or equal to the current doc ID and must be a valid doc ID, ie. ≥ 0 and < maxDoc. After this method returns, DocIdSetIterator.docID() returns target.

      Note: it is illegal to call DocIdSetIterator.intoBitSet(int, org.apache.lucene.util.FixedBitSet, int) or DocIdSetIterator.docIDRunEnd() when this method returns false.

      Throws:
      IOException