org.apache.lucene.index

## Class SortedSetDocValues

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

Direct Known Subclasses:
  MultiDocValues.MultiSortedSetDocValues, SingletonSortedSetDocValues

    public abstract class SortedSetDocValues
    extends Object

A per-document set of presorted byte[] values.

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
`static SortedSetDocValues` `EMPTY` An empty SortedDocValues which returns `NO_MORE_ORDS` for every document
`static long` `NO_MORE_ORDS` When returned by `nextOrd()` it means there are no more ordinals for the document.

### Constructor Summary

Constructors
`protected` `SortedSetDocValues()` Sole constructor.

### Method Summary

Methods
`abstract long` `getValueCount()` Returns the number of unique values.
`abstract void` `lookupOrd(long ord, BytesRef result)` 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 (previously set by `setDocument(int)`.
`abstract void` `setDocument(int docID)` Sets iteration to the specified docID

### 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

#### EMPTY

    public static final SortedSetDocValues EMPTY

An empty SortedDocValues which returns `NO_MORE_ORDS` for every document

### Constructor Detail

#### SortedSetDocValues

    protected SortedSetDocValues()

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

### Method Detail

#### nextOrd

    public abstract long nextOrd()

Returns the next ordinal for the current document (previously set by `setDocument(int)`.

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.

#### setDocument

    public abstract void setDocument(int docID)

Sets iteration to the specified docID

Parameters:
  `docID` - document ID

#### lookupOrd

    public abstract void lookupOrd(long ord,
                 BytesRef result)

Retrieves the value for the specified ordinal.

Parameters:
  `ord` - ordinal to lookup
  `result` - will be populated with the ordinal's value
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)

If `key` exists, returns its ordinal, else returns `-insertionPoint-1`, like `Arrays.binarySearch`.

Parameters:
  `key` - Key to look up