public abstract class TermsEnum extends Object implements BytesRefIterator
seekCeil(BytesRef), seekExact(BytesRef)) or step through (BytesRefIterator.next() terms to obtain frequency information (docFreq()), PostingsEnum or PostingsEnum for the current term (postings(org.apache.lucene.index.PostingsEnum).
Term enumerations are always ordered by BytesRef.compareTo, which is Unicode sort order if the terms are UTF-8 bytes. Each term in the enumeration is greater than the one before it.
The TermsEnum is unpositioned when you first obtain it
and you must first successfully call BytesRefIterator.next() or one
of the seek methods.
| Modifier and Type | Class and Description |
|---|---|
static class |
TermsEnum.SeekStatus
Represents returned result from
seekCeil(org.apache.lucene.util.BytesRef). |
| Modifier and Type | Field and Description |
|---|---|
static TermsEnum |
EMPTY
An empty TermsEnum for quickly returning an empty instance e.g.
|
| Modifier | Constructor and Description |
|---|---|
protected |
TermsEnum()
Sole constructor.
|
| Modifier and Type | Method and Description |
|---|---|
AttributeSource |
attributes()
Returns the related attributes.
|
abstract int |
docFreq()
Returns the number of documents containing the current
term.
|
DocsEnum |
docs(Bits liveDocs,
DocsEnum reuse)
Deprecated.
Use
postings(PostingsEnum) instead |
DocsEnum |
docs(Bits liveDocs,
DocsEnum reuse,
int flags)
Deprecated.
Use
postings(PostingsEnum, int) instead |
DocsAndPositionsEnum |
docsAndPositions(Bits liveDocs,
DocsAndPositionsEnum reuse)
Deprecated.
Use
postings(PostingsEnum, int) instead |
DocsAndPositionsEnum |
docsAndPositions(Bits liveDocs,
DocsAndPositionsEnum reuse,
int flags)
Deprecated.
Use
postings(PostingsEnum, int) instead |
abstract long |
ord()
Returns ordinal position for current term.
|
PostingsEnum |
postings(PostingsEnum reuse)
Get
PostingsEnum for the current term. |
abstract PostingsEnum |
postings(PostingsEnum reuse,
int flags)
Get
PostingsEnum for the current term, with
control over whether freqs, positions, offsets or payloads
are required. |
abstract TermsEnum.SeekStatus |
seekCeil(BytesRef text)
Seeks to the specified term, if it exists, or to the
next (ceiling) term.
|
boolean |
seekExact(BytesRef text)
Attempts to seek to the exact term, returning
true if the term is found.
|
void |
seekExact(BytesRef term,
TermState state)
Expert: Seeks a specific position by
TermState previously obtained
from termState(). |
abstract void |
seekExact(long ord)
Seeks to the specified term by ordinal (position) as
previously returned by
ord(). |
abstract BytesRef |
term()
Returns current term.
|
TermState |
termState()
Expert: Returns the TermsEnums internal state to position the TermsEnum
without re-seeking the term dictionary.
|
abstract 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).
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitnextpublic static final TermsEnum EMPTY
MultiTermQuery
Please note: This enum should be unmodifiable, but it is currently possible to add Attributes to it. This should not be a problem, as the enum is always empty and the existence of unused Attributes does not matter.
protected TermsEnum()
public AttributeSource attributes()
public boolean seekExact(BytesRef text) throws IOException
seekCeil(org.apache.lucene.util.BytesRef).IOExceptionpublic abstract TermsEnum.SeekStatus seekCeil(BytesRef text) throws IOException
IOExceptionpublic abstract void seekExact(long ord)
throws IOException
ord(). The target ord
may be before or after the current ord, and must be
within bounds.IOExceptionpublic void seekExact(BytesRef term, TermState state) throws IOException
TermState previously obtained
from termState(). Callers should maintain the TermState to
use this method. Low-level implementations may position the TermsEnum
without re-seeking the term dictionary.
Seeking by TermState should only be used iff the state was obtained
from the same TermsEnum instance.
NOTE: Using this method with an incompatible TermState might leave
this TermsEnum in undefined state. On a segment level
TermState instances are compatible only iff the source and the
target TermsEnum operate on the same field. If operating on segment
level, TermState instances must not be used across segments.
NOTE: A seek by TermState might not restore the
AttributeSource's state. AttributeSource states must be
maintained separately if this method is used.
term - the term the TermState corresponds tostate - the TermStateIOExceptionpublic abstract BytesRef term() throws IOException
IOExceptionpublic abstract long ord()
throws IOException
UnsupportedOperationException). Do not call this
when the enum is unpositioned.IOExceptionpublic abstract int docFreq()
throws IOException
TermsEnum.SeekStatus.END.IOExceptionpublic abstract long totalTermFreq()
throws IOException
IOExceptionpublic final PostingsEnum postings(PostingsEnum reuse) throws IOException
PostingsEnum for the current term. 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.
Use this method if you only require documents and frequencies,
and do not need any proximity data.
This method is equivalent to
postings(reuse, PostingsEnum.FREQS)
reuse - pass a prior PostingsEnum for possible reuseIOExceptionpostings(PostingsEnum, int)public abstract PostingsEnum postings(PostingsEnum reuse, int flags) throws IOException
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 may return null if the postings
information required is not available from the index
NOTE: the returned iterator may return deleted documents, so
deleted documents have to be checked on top of the PostingsEnum.
reuse - pass a prior PostingsEnum for possible reuseflags - specifies which optional per-document values
you require; see PostingsEnum.FREQSIOExceptionpublic TermState termState() throws IOException
NOTE: A seek by TermState might not capture the
AttributeSource's state. Callers must maintain the
AttributeSource states separately
IOExceptionTermState,
seekExact(BytesRef, TermState)@Deprecated public final DocsEnum docs(Bits liveDocs, DocsEnum reuse) throws IOException
postings(PostingsEnum) insteadDocsEnum for the current term. Do not
call this when the enum is unpositioned. This method
will not return null.liveDocs - unset bits are documents that should not
be returnedreuse - pass a prior DocsEnum for possible reuseIOException@Deprecated public final DocsEnum docs(Bits liveDocs, DocsEnum reuse, int flags) throws IOException
postings(PostingsEnum, int) insteadDocsEnum for the current term, with
control over whether freqs are required. Do not
call this when the enum is unpositioned. This method
will not return null.liveDocs - unset bits are documents that should not
be returnedreuse - pass a prior DocsEnum for possible reuseflags - specifies which optional per-document values
you require; see DocsEnum.FLAG_FREQSIOExceptiondocs(Bits, DocsEnum, int)@Deprecated public final DocsAndPositionsEnum docsAndPositions(Bits liveDocs, DocsAndPositionsEnum reuse) throws IOException
postings(PostingsEnum, int) insteadDocsAndPositionsEnum for the current term.
Do not call this when the enum is unpositioned. This
method will return null if positions were not
indexed.liveDocs - unset bits are documents that should not
be returnedreuse - pass a prior DocsAndPositionsEnum for possible reuseIOExceptiondocsAndPositions(Bits, DocsAndPositionsEnum, int)@Deprecated public final DocsAndPositionsEnum docsAndPositions(Bits liveDocs, DocsAndPositionsEnum reuse, int flags) throws IOException
postings(PostingsEnum, int) insteadDocsAndPositionsEnum for the current term,
with control over whether offsets and payloads are
required. Some codecs may be able to optimize their
implementation when offsets and/or payloads are not required.
Do not call this when the enum is unpositioned. This
will return null if positions were not indexed.liveDocs - unset bits are documents that should not
be returnedreuse - pass a prior DocsAndPositionsEnum for possible reuseflags - specifies which optional per-position values you
require; see DocsAndPositionsEnum.FLAG_OFFSETS and
DocsAndPositionsEnum.FLAG_PAYLOADS.IOExceptionCopyright © 2000-2016 Apache Software Foundation. All Rights Reserved.