org.apache.lucene.index

## Class SortedDocValues

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

Direct Known Subclasses:
  MultiDocValues.MultiSortedDocValues

    public abstract class SortedDocValues
    extends BinaryDocValues

A per-document byte[] with presorted 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 SortedDocValues` `EMPTY` An empty SortedDocValues which returns `BinaryDocValues.MISSING` for every document

### Fields inherited from class org.apache.lucene.index.BinaryDocValues

`MISSING`

### Constructor Summary

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

### Method Summary

Methods
`void` `get(int docID, BytesRef result)` Lookup the value for document.
`abstract int` `getOrd(int docID)` Returns the ordinal for the specified docID.
`abstract int` `getValueCount()` Returns the number of unique values.
`abstract void` `lookupOrd(int ord, BytesRef result)` Retrieves the value for the specified ordinal.
`int` `lookupTerm(BytesRef key)` If `key` exists, returns its ordinal, else returns `-insertionPoint-1`, like `Arrays.binarySearch`.

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

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

### Field Detail

#### EMPTY

    public static final SortedDocValues EMPTY

An empty SortedDocValues which returns `BinaryDocValues.MISSING` for every document

### Constructor Detail

#### SortedDocValues

    protected SortedDocValues()

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

### Method Detail

#### getOrd

    public abstract int getOrd(int docID)

Returns the ordinal for the specified docID.

Parameters:
  `docID` - document ID to lookup
Returns:
  ordinal for the document: this is dense, starts at 0, then increments by 1 for the next value in sorted order.

#### lookupOrd

    public abstract void lookupOrd(int 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:
  `getOrd(int)`

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

#### get

    public void get(int docID,
           BytesRef result)

Description copied from class: `BinaryDocValues`
Lookup the value for document.

Specified by:
  `get` in class `BinaryDocValues`

#### lookupTerm

    public int lookupTerm(BytesRef key)

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

Parameters:
  `key` - Key to look up