Class TermsEnum
Enumerator to seek (SeekCeil(BytesRef), SeekExact(BytesRef)) or step through (MoveNext() terms to obtain Term, frequency information (DocFreq), DocsEnum or DocsAndPositionsEnum for the current term (Docs(IBits, DocsEnum)).
Term enumerations are always ordered by Comparer. 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 MoveNext() or one of theSeek
methods.
Note
This API is experimental and might change in incompatible ways in the next release.
Inheritance
Implements
Inherited Members
Namespace: Lucene.Net.Index
Assembly: Lucene.Net.dll
Syntax
public abstract class TermsEnum : IBytesRefEnumerator
Constructors
TermsEnum()
Sole constructor. (For invocation by subclass constructors, typically implicit.)
Declaration
protected TermsEnum()
Fields
EMPTY
An empty TermsEnum for quickly returning an empty instance e.g. in 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.Declaration
public static readonly TermsEnum EMPTY
Field Value
Type | Description |
---|---|
TermsEnum |
Properties
Attributes
Returns the related attributes.
Declaration
public virtual AttributeSource Attributes { get; }
Property Value
Type | Description |
---|---|
AttributeSource |
Comparer
Return the BytesRef Comparer used to sort terms provided by the
iterator. This may return null
if there are no items or the iterator is not
sorted. Callers may invoke this method many times, so it's best to cache a
single instance & reuse it.
Declaration
public abstract IComparer<BytesRef> Comparer { get; }
Property Value
Type | Description |
---|---|
IComparer<BytesRef> |
DocFreq
Returns the number of documents containing the current term. Do not call this when the enum is unpositioned.
Declaration
public abstract int DocFreq { get; }
Property Value
Type | Description |
---|---|
int |
See Also
Ord
Returns ordinal position for current term. This is an optional property (the codec may throw NotSupportedException. Do not call this when the enum is unpositioned.
Declaration
public abstract long Ord { get; }
Property Value
Type | Description |
---|---|
long |
Term
Returns current term. Do not call this when the enum is unpositioned.
Declaration
public abstract BytesRef Term { get; }
Property Value
Type | Description |
---|---|
BytesRef |
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). This will be -1 if the codec doesn't support this measure. Note that, like other term measures, this measure does not take deleted documents into account.
Declaration
public abstract long TotalTermFreq { get; }
Property Value
Type | Description |
---|---|
long |
Methods
Docs(IBits, DocsEnum)
Get DocsEnum for the current term. Do not
call this when the enum is unpositioned. This method
will not return null
.
Declaration
public DocsEnum Docs(IBits liveDocs, DocsEnum reuse)
Parameters
Type | Name | Description |
---|---|---|
IBits | liveDocs | Unset bits are documents that should not be returned |
DocsEnum | reuse | Pass a prior DocsEnum for possible reuse |
Returns
Type | Description |
---|---|
DocsEnum |
Docs(IBits, DocsEnum, DocsFlags)
Get DocsEnum 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
.
Declaration
public abstract DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags)
Parameters
Type | Name | Description |
---|---|---|
IBits | liveDocs | Unset bits are documents that should not be returned |
DocsEnum | reuse | Pass a prior DocsEnum for possible reuse |
DocsFlags | flags | Specifies which optional per-document values you require; DocsFlags |
Returns
Type | Description |
---|---|
DocsEnum |
See Also
DocsAndPositions(IBits, DocsAndPositionsEnum)
Get DocsAndPositionsEnum for the current term.
Do not call this when the enum is unpositioned. This
method will return null
if positions were not
indexed.
Declaration
public DocsAndPositionsEnum DocsAndPositions(IBits liveDocs, DocsAndPositionsEnum reuse)
Parameters
Type | Name | Description |
---|---|---|
IBits | liveDocs | Unset bits are documents that should not be returned |
DocsAndPositionsEnum | reuse | Pass a prior DocsAndPositionsEnum for possible reuse |
Returns
Type | Description |
---|---|
DocsAndPositionsEnum |
See Also
DocsAndPositions(IBits, DocsAndPositionsEnum, DocsAndPositionsFlags)
Get DocsAndPositionsEnum 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.
Declaration
public abstract DocsAndPositionsEnum DocsAndPositions(IBits liveDocs, DocsAndPositionsEnum reuse, DocsAndPositionsFlags flags)
Parameters
Type | Name | Description |
---|---|---|
IBits | liveDocs | Unset bits are documents that should not be returned |
DocsAndPositionsEnum | reuse | Pass a prior DocsAndPositionsEnum for possible reuse |
DocsAndPositionsFlags | flags | Specifies which optional per-position values you require; see DocsAndPositionsFlags. |
Returns
Type | Description |
---|---|
DocsAndPositionsEnum |
GetTermState()
Expert: Returns the TermsEnums internal state to position the TermsEnum without re-seeking the term dictionary.
NOTE: A seek by GetTermState() might not capture the AttributeSource's state. Callers must maintain the AttributeSource states separatelyDeclaration
public virtual TermState GetTermState()
Returns
Type | Description |
---|---|
TermState |
See Also
MoveNext()
Moves to the next item in the TermsEnum.
The default implementation can and should be overridden with a more optimized version.Declaration
public abstract bool MoveNext()
Returns
Type | Description |
---|---|
bool |
|
SeekCeil(BytesRef)
Seeks to the specified term, if it exists, or to the next (ceiling) term. Returns TermsEnum.SeekStatus to indicate whether exact term was found, a different term was found, or EOF was hit. The target term may be before or after the current term. If this returns END, the enum is unpositioned.
Declaration
public abstract TermsEnum.SeekStatus SeekCeil(BytesRef text)
Parameters
Type | Name | Description |
---|---|---|
BytesRef | text |
Returns
Type | Description |
---|---|
TermsEnum.SeekStatus |
SeekExact(BytesRef)
Attempts to seek to the exact term, returning
true
if the term is found. If this returns false
, the
enum is unpositioned. For some codecs, SeekExact(BytesRef) may
be substantially faster than SeekCeil(BytesRef).
Declaration
public virtual bool SeekExact(BytesRef text)
Parameters
Type | Name | Description |
---|---|---|
BytesRef | text |
Returns
Type | Description |
---|---|
bool |
SeekExact(BytesRef, TermState)
Expert: Seeks a specific position by TermState previously obtained from GetTermState(). 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.Declaration
public virtual void SeekExact(BytesRef term, TermState state)
Parameters
Type | Name | Description |
---|---|---|
BytesRef | term | the term the TermState corresponds to |
TermState | state | the TermState |
SeekExact(long)
Seeks to the specified term by ordinal (position) as
previously returned by Ord. The target ord
may be before or after the current ord, and must be
within bounds.
Declaration
public abstract void SeekExact(long ord)
Parameters
Type | Name | Description |
---|---|---|
long | ord |