org.apache.lucene.index

## Class SortedSetDocValues

- java.lang.Object
- - org.apache.lucene.search.DocIdSetIterator
  - - org.apache.lucene.index.SortedSetDocValues

- Direct Known Subclasses:
    LegacySortedSetDocValuesWrapper, MultiDocValues.MultiSortedSetDocValues

      public abstract class SortedSetDocValues
      extends DocIdSetIterator

  A multi-valued version of `SortedDocValues`.

  Per-Document values in a SortedSetDocValues 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
    Modifier and Type | Field and Description
    --- | ---
    `static long` | `NO_MORE_ORDS` When returned by `nextOrd()` it means there are no more ordinals for the document.

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

      `NO_MORE_DOCS`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `SortedSetDocValues()` 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.
    `abstract long` | `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(long ord)` Retrieves the value for the specified ordinal.
    `long` | `lookupTerm(BytesRef key)` If `key` exists, returns its ordinal, else returns `-insertionPoint-1`, like `Arrays.binarySearch`.
    `abstract long` | `nextOrd()` Returns the next ordinal for the current document.
    `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`

- - ### Field Detail

    - #### NO_MORE_ORDS

          public static final long NO_MORE_ORDS

      When returned by `nextOrd()` it means there are no more ordinals for the document.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SortedSetDocValues

          protected SortedSetDocValues()

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

  - ### Method Detail

    - #### nextOrd

          public abstract long nextOrd()
                                throws IOException

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

    - #### lookupOrd

          public abstract BytesRef lookupOrd(long ord)
                                      throws IOException

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

    - #### getValueCount

          public abstract long 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 long 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()` retuns `target`.
      Throws:
        `IOException`

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