public final class MultiTerms extends Terms
| Modifier and Type | Field and Description |
|---|---|
private boolean |
hasFreqs |
private boolean |
hasOffsets |
private boolean |
hasPayloads |
private boolean |
hasPositions |
private Terms[] |
subs |
private ReaderSlice[] |
subSlices |
EMPTY_ARRAY| Constructor and Description |
|---|
MultiTerms(Terms[] subs,
ReaderSlice[] subSlices)
Sole constructor.
|
| Modifier and Type | Method and 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 of
TermsEnum.docFreq() for
all terms in this field. |
long |
getSumTotalTermFreq()
Returns the sum of
TermsEnum.totalTermFreq() for
all terms in this field. |
static PostingsEnum |
getTermPostingsEnum(IndexReader r,
java.lang.String field,
BytesRef term)
Returns
PostingsEnum for the specified
field and term. |
static PostingsEnum |
getTermPostingsEnum(IndexReader r,
java.lang.String field,
BytesRef term,
int flags)
Returns
PostingsEnum for the specified
field and term, with control over whether freqs, positions, offsets or payloads
are required. |
static Terms |
getTerms(IndexReader r,
java.lang.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 provided
CompiledAutomaton. |
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.
|
private final Terms[] subs
private final ReaderSlice[] subSlices
private final boolean hasFreqs
private final boolean hasOffsets
private final boolean hasPositions
private final boolean hasPayloads
public MultiTerms(Terms[] subs, ReaderSlice[] subSlices) throws java.io.IOException
getTerms(IndexReader, String) instead if possible.subs - The Terms instances of all sub-readers.subSlices - A parallel array (matching subs) describing the sub-reader slices.java.io.IOExceptionpublic static Terms getTerms(IndexReader r, java.lang.String field) throws java.io.IOException
java.io.IOExceptionpublic static PostingsEnum getTermPostingsEnum(IndexReader r, java.lang.String field, BytesRef term) throws java.io.IOException
PostingsEnum for the specified
field and term. This will return null if the field or
term does not exist or positions were not indexed.java.io.IOExceptiongetTermPostingsEnum(IndexReader, String, BytesRef, int)public static PostingsEnum getTermPostingsEnum(IndexReader r, java.lang.String field, BytesRef term, int flags) throws java.io.IOException
PostingsEnum 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. See TermsEnum.postings(PostingsEnum,int).java.io.IOExceptionpublic Terms[] getSubTerms()
public ReaderSlice[] getSubSlices()
public TermsEnum intersect(CompiledAutomaton compiled, BytesRef startTerm) throws java.io.IOException
TermsCompiledAutomaton. If the startTerm 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
provided startTerm 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 use
CompiledAutomaton.getTermsEnum(org.apache.lucene.index.Terms) instead.
NOTE: the returned TermsEnum cannot seek
.public BytesRef getMin() throws java.io.IOException
Termspublic BytesRef getMax() throws java.io.IOException
Termspublic TermsEnum iterator() throws java.io.IOException
Termspublic long size()
Termspublic long getSumTotalTermFreq()
throws java.io.IOException
TermsTermsEnum.totalTermFreq() for
all terms in this field. Note that, just like other term
measures, this measure does not take deleted documents
into account.getSumTotalTermFreq in class Termsjava.io.IOExceptionpublic long getSumDocFreq()
throws java.io.IOException
TermsTermsEnum.docFreq() for
all terms in this field. Note that, just like other term
measures, this measure does not take deleted documents
into account.getSumDocFreq in class Termsjava.io.IOExceptionpublic int getDocCount()
throws java.io.IOException
TermsgetDocCount in class Termsjava.io.IOExceptionpublic boolean hasFreqs()
TermsPostingsEnum.freq()).public boolean hasOffsets()
TermshasOffsets in class Termspublic boolean hasPositions()
TermshasPositions in class Termspublic boolean hasPayloads()
TermshasPayloads in class Terms