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
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_ORDSDeprecated.Will be removed in a future version.-
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 intdocValueCount()Retrieves the number of unique ords for the current document.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
@Deprecated public static final long NO_MORE_ORDS
Deprecated.Will be removed in a future version. Please usedocValueCount()to know the number of doc values for the current document up-front.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.Note: Returns
NO_MORE_ORDSwhen the current document has no more ordinals. This behavior will be removed in a future version. Callers should usedocValueCount()to determine the number of values for the current document up-front.- 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
-
docValueCount
public abstract int docValueCount()
Retrieves the number of unique ords for the current document. This must always be greater than zero. It is illegal to call this method afteradvanceExact(int)returnedfalse.
-
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()returnstarget.- Throws:
IOException
-
-