public final class MultiTermsEnum extends BaseTermsEnum
Modifier and Type | Class and Description |
---|---|
private static class |
MultiTermsEnum.TermMergeQueue |
(package private) static class |
MultiTermsEnum.TermsEnumIndex |
(package private) static class |
MultiTermsEnum.TermsEnumWithSlice |
TermsEnum.SeekStatus
Modifier and Type | Field and Description |
---|---|
private BytesRef |
current |
private MultiTermsEnum.TermsEnumWithSlice[] |
currentSubs |
private static java.util.Comparator<MultiTermsEnum.TermsEnumWithSlice> |
INDEX_COMPARATOR |
private BytesRef |
lastSeek |
private boolean |
lastSeekExact |
private BytesRefBuilder |
lastSeekScratch |
private int |
numSubs |
private int |
numTop |
private MultiTermsEnum.TermMergeQueue |
queue |
private MultiPostingsEnum.EnumWithSlice[] |
subDocs |
private MultiTermsEnum.TermsEnumWithSlice[] |
subs |
private MultiTermsEnum.TermsEnumWithSlice[] |
top |
Constructor and Description |
---|
MultiTermsEnum(ReaderSlice[] slices)
Sole constructor.
|
Modifier and Type | Method and Description |
---|---|
int |
docFreq()
Returns the number of documents containing the current
term.
|
MultiTermsEnum.TermsEnumWithSlice[] |
getMatchArray()
Returns sub-reader slices positioned to the current term.
|
int |
getMatchCount()
Returns how many sub-reader slices contain the current
term.
|
ImpactsEnum |
impacts(int flags)
Return a
ImpactsEnum . |
BytesRef |
next()
Increments the iteration to the next
BytesRef in the iterator. |
long |
ord()
Returns ordinal position for current term.
|
PostingsEnum |
postings(PostingsEnum reuse,
int flags)
Get
PostingsEnum for the current term, with
control over whether freqs, positions, offsets or payloads
are required. |
private void |
pullTop() |
private void |
pushTop() |
TermsEnum |
reset(MultiTermsEnum.TermsEnumIndex[] termsEnumsIndex)
The terms array must be newly created TermsEnum, ie
BytesRefIterator.next() has not yet been called. |
TermsEnum.SeekStatus |
seekCeil(BytesRef term)
Seeks to the specified term, if it exists, or to the
next (ceiling) term.
|
boolean |
seekExact(BytesRef term)
Attempts to seek to the exact term, returning true if the term is found.
|
void |
seekExact(long ord)
Seeks to the specified term by ordinal (position) as
previously returned by
TermsEnum.ord() . |
BytesRef |
term()
Returns current term.
|
java.lang.String |
toString() |
long |
totalTermFreq()
Returns the total number of occurrences of this term
across all documents (the sum of the freq() for each
doc that has this term).
|
attributes, seekExact, termState
private static final java.util.Comparator<MultiTermsEnum.TermsEnumWithSlice> INDEX_COMPARATOR
private final MultiTermsEnum.TermMergeQueue queue
private final MultiTermsEnum.TermsEnumWithSlice[] subs
private final MultiTermsEnum.TermsEnumWithSlice[] currentSubs
private final MultiTermsEnum.TermsEnumWithSlice[] top
private final MultiPostingsEnum.EnumWithSlice[] subDocs
private BytesRef lastSeek
private boolean lastSeekExact
private final BytesRefBuilder lastSeekScratch
private int numTop
private int numSubs
private BytesRef current
public MultiTermsEnum(ReaderSlice[] slices)
slices
- Which sub-reader slices we should
merge.public int getMatchCount()
public MultiTermsEnum.TermsEnumWithSlice[] getMatchArray()
public BytesRef term()
TermsEnum
public TermsEnum reset(MultiTermsEnum.TermsEnumIndex[] termsEnumsIndex) throws java.io.IOException
BytesRefIterator.next()
has not yet been called.java.io.IOException
public boolean seekExact(BytesRef term) throws java.io.IOException
TermsEnum
TermsEnum.seekCeil(org.apache.lucene.util.BytesRef)
.
seekExact
in class BaseTermsEnum
java.io.IOException
public TermsEnum.SeekStatus seekCeil(BytesRef term) throws java.io.IOException
TermsEnum
public void seekExact(long ord)
TermsEnum
TermsEnum.ord()
. The target ord
may be before or after the current ord, and must be
within bounds.public long ord()
TermsEnum
UnsupportedOperationException
). Do not call this
when the enum is unpositioned.private void pullTop()
private void pushTop() throws java.io.IOException
java.io.IOException
public BytesRef next() throws java.io.IOException
BytesRefIterator
BytesRef
in the iterator.
Returns the resulting BytesRef
or null
if the end of
the iterator is reached. The returned BytesRef may be re-used across calls
to next. After this method returns null, do not call it again: the results
are undefined.BytesRef
in the iterator or null
if
the end of the iterator is reached.java.io.IOException
- If there is a low-level I/O error.public int docFreq() throws java.io.IOException
TermsEnum
TermsEnum.SeekStatus.END
.public long totalTermFreq() throws java.io.IOException
TermsEnum
totalTermFreq
in class TermsEnum
java.io.IOException
public PostingsEnum postings(PostingsEnum reuse, int flags) throws java.io.IOException
TermsEnum
PostingsEnum
for the current term, with
control over whether freqs, positions, offsets or payloads
are required. Do not call this when the enum is
unpositioned. This method will not return null.
NOTE: the returned iterator may return deleted documents, so
deleted documents have to be checked on top of the PostingsEnum
.
postings
in class TermsEnum
reuse
- pass a prior PostingsEnum for possible reuseflags
- specifies which optional per-document values
you require; see PostingsEnum.FREQS
java.io.IOException
public ImpactsEnum impacts(int flags) throws java.io.IOException
TermsEnum
ImpactsEnum
.impacts
in class TermsEnum
java.io.IOException
TermsEnum.postings(PostingsEnum, int)
public java.lang.String toString()
toString
in class java.lang.Object