Package org.apache.lucene.index
Class MultiTerms
- java.lang.Object
-
- org.apache.lucene.index.Terms
-
- org.apache.lucene.index.MultiTerms
-
public final class MultiTerms extends Terms
Exposes flex API, merged from flex API of sub-segments.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.index.Terms
EMPTY_ARRAY
-
-
Constructor Summary
Constructors Constructor Description MultiTerms(Terms[] subs, ReaderSlice[] subSlices)
Sole constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getDocCount()
Returns the number of documents that have at least one term for this field.BytesRef
getMax()
Returns the largest term (in lexicographic order) in the field.BytesRef
getMin()
Returns the smallest term (in lexicographic order) in the field.ReaderSlice[]
getSubSlices()
Expert: returns pointers to the sub-readers corresponding to the Terms being merged.Terms[]
getSubTerms()
Expert: returns the Terms being merged.long
getSumDocFreq()
Returns the sum ofTermsEnum.docFreq()
for all terms in this field.long
getSumTotalTermFreq()
Returns the sum ofTermsEnum.totalTermFreq()
for all terms in this field.static PostingsEnum
getTermPostingsEnum(IndexReader r, String field, BytesRef term)
ReturnsPostingsEnum
for the specified field and term.static PostingsEnum
getTermPostingsEnum(IndexReader r, String field, BytesRef term, int flags)
ReturnsPostingsEnum
for the specified field and term, with control over whether freqs, positions, offsets or payloads are required.static Terms
getTerms(IndexReader r, String field)
This method may return null if the field does not exist or if it has no terms.boolean
hasFreqs()
Returns true if documents in this field store per-document term frequency (PostingsEnum.freq()
).boolean
hasOffsets()
Returns true if documents in this field store offsets.boolean
hasPayloads()
Returns true if documents in this field store payloads.boolean
hasPositions()
Returns true if documents in this field store positions.TermsEnum
intersect(CompiledAutomaton compiled, BytesRef startTerm)
Returns a TermsEnum that iterates over all terms and documents that are accepted by the providedCompiledAutomaton
.TermsEnum
iterator()
Returns an iterator that will step through all terms.long
size()
Returns the number of terms for this field, or -1 if this measure isn't stored by the codec.
-
-
-
Constructor Detail
-
MultiTerms
public MultiTerms(Terms[] subs, ReaderSlice[] subSlices) throws IOException
Sole constructor. UsegetTerms(IndexReader, String)
instead if possible.- Parameters:
subs
- TheTerms
instances of all sub-readers.subSlices
- A parallel array (matchingsubs
) describing the sub-reader slices.- Throws:
IOException
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
-
Method Detail
-
getTerms
public static Terms getTerms(IndexReader r, String field) throws IOException
This method may return null if the field does not exist or if it has no terms.- Throws:
IOException
-
getTermPostingsEnum
public static PostingsEnum getTermPostingsEnum(IndexReader r, String field, BytesRef term) throws IOException
ReturnsPostingsEnum
for the specified field and term. This will return null if the field or term does not exist or positions were not indexed.- Throws:
IOException
- See Also:
getTermPostingsEnum(IndexReader, String, BytesRef, int)
-
getTermPostingsEnum
public static PostingsEnum getTermPostingsEnum(IndexReader r, String field, BytesRef term, int flags) throws IOException
ReturnsPostingsEnum
for the specified field and term, with control over whether freqs, positions, offsets or payloads are required. Some codecs may be able to optimize their implementation when offsets and/or payloads are not required. This will return null if the field or term does not exist. SeeTermsEnum.postings(PostingsEnum,int)
.- Throws:
IOException
-
getSubTerms
public Terms[] getSubTerms()
Expert: returns the Terms being merged.
-
getSubSlices
public ReaderSlice[] getSubSlices()
Expert: returns pointers to the sub-readers corresponding to the Terms being merged.
-
intersect
public TermsEnum intersect(CompiledAutomaton compiled, BytesRef startTerm) throws IOException
Description copied from class:Terms
Returns a TermsEnum that iterates over all terms and documents that are accepted by the providedCompiledAutomaton
. If thestartTerm
is provided then the returned enum will only return terms> startTerm
, but you still must call next() first to get to the first term. Note that the providedstartTerm
must be accepted by the automaton.This is an expert low-level API and will only work for
NORMAL
compiled automata. To handle any compiled automata you should instead useCompiledAutomaton.getTermsEnum(org.apache.lucene.index.Terms)
instead.NOTE: the returned TermsEnum cannot seek.
- Overrides:
intersect
in classTerms
- Throws:
IOException
-
getMin
public BytesRef getMin() throws IOException
Description copied from class:Terms
Returns the smallest term (in lexicographic order) in the field. Note that, just like other term measures, this measure does not take deleted documents into account. This returns null when there are no terms.- Overrides:
getMin
in classTerms
- Throws:
IOException
-
getMax
public BytesRef getMax() throws IOException
Description copied from class:Terms
Returns the largest term (in lexicographic order) in the field. Note that, just like other term measures, this measure does not take deleted documents into account. This returns null when there are no terms.- Overrides:
getMax
in classTerms
- Throws:
IOException
-
iterator
public TermsEnum iterator() throws IOException
Description copied from class:Terms
Returns an iterator that will step through all terms. This method will not return null.- Specified by:
iterator
in classTerms
- Throws:
IOException
-
size
public long size()
Description copied from class:Terms
Returns the number of terms for this field, or -1 if this measure isn't stored by the codec. Note that, just like other term measures, this measure does not take deleted documents into account.
-
getSumTotalTermFreq
public long getSumTotalTermFreq() throws IOException
Description copied from class:Terms
Returns the sum ofTermsEnum.totalTermFreq()
for all terms in this field. Note that, just like other term measures, this measure does not take deleted documents into account.- Specified by:
getSumTotalTermFreq
in classTerms
- Throws:
IOException
-
getSumDocFreq
public long getSumDocFreq() throws IOException
Description copied from class:Terms
Returns the sum ofTermsEnum.docFreq()
for all terms in this field. Note that, just like other term measures, this measure does not take deleted documents into account.- Specified by:
getSumDocFreq
in classTerms
- Throws:
IOException
-
getDocCount
public int getDocCount() throws IOException
Description copied from class:Terms
Returns the number of documents that have at least one term for this field. Note that, just like other term measures, this measure does not take deleted documents into account.- Specified by:
getDocCount
in classTerms
- Throws:
IOException
-
hasFreqs
public boolean hasFreqs()
Description copied from class:Terms
Returns true if documents in this field store per-document term frequency (PostingsEnum.freq()
).
-
hasOffsets
public boolean hasOffsets()
Description copied from class:Terms
Returns true if documents in this field store offsets.- Specified by:
hasOffsets
in classTerms
-
hasPositions
public boolean hasPositions()
Description copied from class:Terms
Returns true if documents in this field store positions.- Specified by:
hasPositions
in classTerms
-
hasPayloads
public boolean hasPayloads()
Description copied from class:Terms
Returns true if documents in this field store payloads.- Specified by:
hasPayloads
in classTerms
-
-