Package org.apache.lucene.index
Class SortedSetDocValues
java.lang.Object
org.apache.lucene.search.DocIdSetIterator
org.apache.lucene.index.SortedSetDocValues
- Direct Known Subclasses:
FilterSortedSetDocValues
,MultiDocValues.MultiSortedSetDocValues
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
Modifier and TypeFieldDescriptionstatic final long
When returned bynextOrd()
it means there are no more ordinals for the document.Fields inherited from class org.apache.lucene.search.DocIdSetIterator
NO_MORE_DOCS
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract boolean
advanceExact
(int target) Advance the iterator to exactlytarget
and return whethertarget
has a value.abstract long
Returns the number of unique values.intersect
(CompiledAutomaton automaton) Returns aTermsEnum
over the values, filtered by aCompiledAutomaton
The enum supportsTermsEnum.ord()
.abstract BytesRef
lookupOrd
(long ord) Retrieves the value for the specified ordinal.long
lookupTerm
(BytesRef key) Ifkey
exists, returns its ordinal, else returns-insertionPoint-1
, likeArrays.binarySearch
.abstract long
nextOrd()
Returns the next ordinal for the current document.Returns aTermsEnum
over the values.Methods inherited from class org.apache.lucene.search.DocIdSetIterator
advance, all, cost, docID, empty, nextDoc, range, slowAdvance
-
Field Details
-
NO_MORE_ORDS
public static final long NO_MORE_ORDSWhen returned bynextOrd()
it means there are no more ordinals for the document.- See Also:
-
-
Constructor Details
-
SortedSetDocValues
protected SortedSetDocValues()Sole constructor. (For invocation by subclass constructors, typically implicit.)
-
-
Method Details
-
nextOrd
Returns the next ordinal for the current document. It is illegal to call this method afteradvanceExact(int)
returnedfalse
.- 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
Retrieves the value for the specified ordinal. The returnedBytesRef
may be re-used across calls to lookupOrd so make sure tocopy it
if you want to keep it around.- Parameters:
ord
- ordinal to lookup- Throws:
IOException
- See Also:
-
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
Ifkey
exists, returns its ordinal, else returns-insertionPoint-1
, likeArrays.binarySearch
.- Parameters:
key
- Key to look up- Throws:
IOException
-
termsEnum
Returns aTermsEnum
over the values. The enum supportsTermsEnum.ord()
andTermsEnum.seekExact(long)
.- Throws:
IOException
-
intersect
Returns aTermsEnum
over the values, filtered by aCompiledAutomaton
The enum supportsTermsEnum.ord()
.- Throws:
IOException
-
advanceExact
Advance the iterator to exactlytarget
and return whethertarget
has a value.target
must be greater than or equal to the currentdoc ID
and must be a valid doc ID, ie. ≥ 0 and <maxDoc
. After this method returns,DocIdSetIterator.docID()
returnstarget
.- Throws:
IOException
-