org.apache.lucene.index

## Class SortedDocValues

- java.lang.Object
- - org.apache.lucene.search.DocIdSetIterator
  - - org.apache.lucene.index.BinaryDocValues
    - - org.apache.lucene.index.SortedDocValues

- Direct Known Subclasses:
    FilterSortedDocValues, MultiDocValues.MultiSortedDocValues

      public abstract class SortedDocValues
      extends BinaryDocValues

  A per-document byte[] with presorted values. This is fundamentally an iterator over the int ord values per document, with random access APIs to resolve an int ord to BytesRef.

  Per-Document values in a SortedDocValues are deduplicated, dereferenced, and sorted into a dictionary of unique values. A pointer to the dictionary value (ordinal) can be retrieved for each document. Ordinals are dense and in increasing sorted order.

- - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.search.DocIdSetIterator

      `NO_MORE_DOCS`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `SortedDocValues()` Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract boolean` | `advanceExact(int target)` Advance the iterator to exactly `target` and return whether `target` has a value.
    `BytesRef` | `binaryValue()` Returns the binary value for the current document ID.
    `abstract int` | `getValueCount()` Returns the number of unique values.
    `TermsEnum` | `intersect(CompiledAutomaton automaton)` Returns a `TermsEnum` over the values, filtered by a `CompiledAutomaton` The enum supports `TermsEnum.ord()`.
    `abstract BytesRef` | `lookupOrd(int ord)` Retrieves the value for the specified ordinal.
    `int` | `lookupTerm(BytesRef key)` If `key` exists, returns its ordinal, else returns `-insertionPoint-1`, like `Arrays.binarySearch`.
    `abstract int` | `ordValue()` Returns the ordinal for the current docID.
    `TermsEnum` | `termsEnum()` Returns a `TermsEnum` over the values.

    - ### Methods inherited from class org.apache.lucene.search.DocIdSetIterator

      `advance, all, cost, docID, empty, nextDoc, range, slowAdvance`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SortedDocValues

          protected SortedDocValues()

      Sole constructor. (For invocation by subclass constructors, typically implicit.)

  - ### Method Detail

    - #### ordValue

          public abstract int ordValue()
                                throws IOException

      Returns the ordinal for the current docID. It is illegal to call this method after `advanceExact(int)` returned `false`.
      Returns:
        ordinal for the document: this is dense, starts at 0, then increments by 1 for the next value in sorted order.
      Throws:
        `IOException`

    - #### lookupOrd

          public abstract BytesRef lookupOrd(int ord)
                                      throws IOException

      Retrieves the value for the specified ordinal. The returned `BytesRef` may be re-used across calls to `lookupOrd(int)` so make sure to `copy it` if you want to keep it around.
      Parameters:
        `ord` - ordinal to lookup (must be >= 0 and < `getValueCount()`)
      Throws:
        `IOException`
      See Also:
        `ordValue()`

    - #### binaryValue

          public BytesRef binaryValue()
                               throws IOException

      Description copied from class: `BinaryDocValues`
      Returns the binary value for the current document ID. It is illegal to call this method after `advanceExact(int)` returned `false`.
      Specified by:
        `binaryValue` in class `BinaryDocValues`
      Returns:
        binary value
      Throws:
        `IOException`

    - #### getValueCount

          public abstract int getValueCount()

      Returns the number of unique values.
      Returns:
        number of unique values in this SortedDocValues. This is also equivalent to one plus the maximum ordinal.

    - #### lookupTerm

          public int lookupTerm(BytesRef key)
                         throws IOException

      If `key` exists, returns its ordinal, else returns `-insertionPoint-1`, like `Arrays.binarySearch`.
      Parameters:
        `key` - Key to look up
      Throws:
        `IOException`

    - #### termsEnum

          public TermsEnum termsEnum()
                              throws IOException

      Returns a `TermsEnum` over the values. The enum supports `TermsEnum.ord()` and `TermsEnum.seekExact(long)`.
      Throws:
        `IOException`

    - #### intersect

          public TermsEnum intersect(CompiledAutomaton automaton)
                              throws IOException

      Returns a `TermsEnum` over the values, filtered by a `CompiledAutomaton` The enum supports `TermsEnum.ord()`.
      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`.
      Throws:
        `IOException`

Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.