Package org.apache.lucene.index
Class SortedDocValues
- java.lang.Object
-
- org.apache.lucene.search.DocIdSetIterator
-
- org.apache.lucene.index.DocValuesIterator
-
- org.apache.lucene.index.BinaryDocValues
-
- org.apache.lucene.index.SortedDocValues
-
- Direct Known Subclasses:
FilterSortedDocValues
,LegacySortedDocValuesWrapper
,Lucene70DocValuesProducer.BaseSortedDocValues
,Lucene80DocValuesProducer.BaseSortedDocValues
,MultiDocValues.MultiSortedDocValues
,SortedDocValuesWriter.BufferedSortedDocValues
,SortedDocValuesWriter.SortingSortedDocValues
,SortedSetSelector.MaxValue
,SortedSetSelector.MiddleMaxValue
,SortedSetSelector.MiddleMinValue
,SortedSetSelector.MinValue
,ToParentDocValues.SortedDVs
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 Modifier and Type Field Description private BytesRef
empty
-
Fields inherited from class org.apache.lucene.search.DocIdSetIterator
NO_MORE_DOCS
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SortedDocValues()
Sole constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description 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 aTermsEnum
over the values, filtered by aCompiledAutomaton
The enum supportsTermsEnum.ord()
.abstract BytesRef
lookupOrd(int ord)
Retrieves the value for the specified ordinal.int
lookupTerm(BytesRef key)
Ifkey
exists, returns its ordinal, else returns-insertionPoint-1
, likeArrays.binarySearch
.abstract int
ordValue()
Returns the ordinal for the current docID.TermsEnum
termsEnum()
Returns aTermsEnum
over the values.-
Methods inherited from class org.apache.lucene.index.DocValuesIterator
advanceExact
-
Methods inherited from class org.apache.lucene.search.DocIdSetIterator
advance, all, cost, docID, empty, nextDoc, range, slowAdvance
-
-
-
-
Field Detail
-
empty
private final BytesRef empty
-
-
Method Detail
-
ordValue
public abstract int ordValue() throws java.io.IOException
Returns the ordinal for the current docID. It is illegal to call this method afterDocValuesIterator.advanceExact(int)
returnedfalse
.- Returns:
- ordinal for the document: this is dense, starts at 0, then increments by 1 for the next value in sorted order.
- Throws:
java.io.IOException
-
lookupOrd
public abstract BytesRef lookupOrd(int ord) throws java.io.IOException
Retrieves the value for the specified ordinal. The returnedBytesRef
may be re-used across calls tolookupOrd(int)
so make sure tocopy it
if you want to keep it around.- Parameters:
ord
- ordinal to lookup (must be >= 0 and <getValueCount()
)- Throws:
java.io.IOException
- See Also:
ordValue()
-
binaryValue
public BytesRef binaryValue() throws java.io.IOException
Description copied from class:BinaryDocValues
Returns the binary value for the current document ID. It is illegal to call this method afterDocValuesIterator.advanceExact(int)
returnedfalse
.- Specified by:
binaryValue
in classBinaryDocValues
- Returns:
- binary value
- Throws:
java.io.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 java.io.IOException
Ifkey
exists, returns its ordinal, else returns-insertionPoint-1
, likeArrays.binarySearch
.- Parameters:
key
- Key to look up- Throws:
java.io.IOException
-
termsEnum
public TermsEnum termsEnum() throws java.io.IOException
Returns aTermsEnum
over the values. The enum supportsTermsEnum.ord()
andTermsEnum.seekExact(long)
.- Throws:
java.io.IOException
-
intersect
public TermsEnum intersect(CompiledAutomaton automaton) throws java.io.IOException
Returns aTermsEnum
over the values, filtered by aCompiledAutomaton
The enum supportsTermsEnum.ord()
.- Throws:
java.io.IOException
-
-