Package 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 ofSortedDocValues.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 Description static longNO_MORE_ORDSWhen 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
Constructors Modifier Constructor Description protectedSortedSetDocValues()Sole constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract booleanadvanceExact(int target)Advance the iterator to exactlytargetand return whethertargethas a value.abstract longgetValueCount()Returns the number of unique values.TermsEnumintersect(CompiledAutomaton automaton)Returns aTermsEnumover the values, filtered by aCompiledAutomatonThe enum supportsTermsEnum.ord().abstract BytesReflookupOrd(long ord)Retrieves the value for the specified ordinal.longlookupTerm(BytesRef key)Ifkeyexists, returns its ordinal, else returns-insertionPoint-1, likeArrays.binarySearch.abstract longnextOrd()Returns the next ordinal for the current document.TermsEnumtermsEnum()Returns aTermsEnumover the values.-
Methods inherited from class org.apache.lucene.search.DocIdSetIterator
advance, all, cost, docID, empty, nextDoc, range, slowAdvance
-
-
-
-
Field Detail
-
NO_MORE_ORDS
public static final long NO_MORE_ORDS
When returned bynextOrd()it means there are no more ordinals for the document.- See Also:
- Constant Field Values
-
-
Method Detail
-
nextOrd
public abstract long nextOrd() throws IOExceptionReturns 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
public abstract BytesRef lookupOrd(long ord) throws IOException
Retrieves the value for the specified ordinal. The returnedBytesRefmay be re-used across calls to lookupOrd so make sure tocopy itif 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
Ifkeyexists, returns its ordinal, else returns-insertionPoint-1, likeArrays.binarySearch.- Parameters:
key- Key to look up- Throws:
IOException
-
termsEnum
public TermsEnum termsEnum() throws IOException
Returns aTermsEnumover the values. The enum supportsTermsEnum.ord()andTermsEnum.seekExact(long).- Throws:
IOException
-
intersect
public TermsEnum intersect(CompiledAutomaton automaton) throws IOException
Returns aTermsEnumover the values, filtered by aCompiledAutomatonThe enum supportsTermsEnum.ord().- Throws:
IOException
-
advanceExact
public abstract boolean advanceExact(int target) throws IOExceptionAdvance the iterator to exactlytargetand return whethertargethas a value.targetmust be greater than or equal to the currentdoc IDand must be a valid doc ID, ie. ≥ 0 and <maxDoc. After this method returns,DocIdSetIterator.docID()retunstarget.- Throws:
IOException
-
-