Package org.apache.lucene.index
Class SortedDocValues
- java.lang.Object
-
- org.apache.lucene.search.DocIdSetIterator
-
- org.apache.lucene.index.SortedDocValues
-
- Direct Known Subclasses:
FilterSortedDocValues,MultiDocValues.MultiSortedDocValues
public abstract class SortedDocValues extends DocIdSetIterator
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 inherited from class org.apache.lucene.search.DocIdSetIterator
NO_MORE_DOCS
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSortedDocValues()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 intgetValueCount()Returns the number of unique values.TermsEnumintersect(CompiledAutomaton automaton)Returns aTermsEnumover the values, filtered by aCompiledAutomatonThe enum supportsTermsEnum.ord().abstract BytesReflookupOrd(int ord)Retrieves the value for the specified ordinal.intlookupTerm(BytesRef key)Ifkeyexists, returns its ordinal, else returns-insertionPoint-1, likeArrays.binarySearch.abstract intordValue()Returns the ordinal for the current docID.TermsEnumtermsEnum()Returns aTermsEnumover the values.-
Methods inherited from class org.apache.lucene.search.DocIdSetIterator
advance, all, cost, docID, empty, nextDoc, range, slowAdvance
-
-
-
-
Method Detail
-
ordValue
public abstract int ordValue() throws IOExceptionReturns the ordinal for the current docID. It is illegal to call this method afteradvanceExact(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:
IOException
-
lookupOrd
public abstract BytesRef lookupOrd(int ord) throws IOException
Retrieves the value for the specified ordinal. The returnedBytesRefmay be re-used across calls tolookupOrd(int)so make sure tocopy itif you want to keep it around.- Parameters:
ord- ordinal to lookup (must be >= 0 and <getValueCount())- Throws:
IOException- See Also:
ordValue()
-
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 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
-
-