org.apache.lucene.index

## Class BaseTermsEnum

- java.lang.Object
- - org.apache.lucene.index.TermsEnum
  - - org.apache.lucene.index.BaseTermsEnum

All Implemented Interfaces:
  BytesRefIterator

Direct Known Subclasses:
  MultiTermsEnum

    public abstract class BaseTermsEnum
    extends TermsEnum

A base TermsEnum that adds default implementations for

- `attributes()`
- `termState()`
- `seekExact(BytesRef)`
- `seekExact(BytesRef, TermState)`

In some cases, the default implementation may be slow and consume huge memory, so subclass SHOULD have its own implementation if possible.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.lucene.index.TermsEnum

`TermsEnum.SeekStatus`

### Field Summary

### Fields inherited from class org.apache.lucene.index.TermsEnum

`EMPTY`

### Constructor Summary

Constructors
`protected` `BaseTermsEnum()` Sole constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`AttributeSource` `attributes()` Returns the related attributes.
`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 `TermsEnum.termState()`.
`TermState` `termState()` Expert: Returns the TermsEnums internal state to position the TermsEnum without re-seeking the term dictionary.

### Methods inherited from class org.apache.lucene.index.TermsEnum

`docFreq, impacts, ord, postings, postings, seekCeil, seekExact, term, totalTermFreq`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.lucene.util.BytesRefIterator

`next`

### Constructor Detail

#### BaseTermsEnum

    protected BaseTermsEnum()

Sole constructor. (For invocation by subclass constructors, typically implicit.)

### Method Detail

#### termState

    public TermState termState()
                        throws IOException

Description copied from class: `TermsEnum`
Expert: Returns the TermsEnums internal state to position the TermsEnum without re-seeking the term dictionary.

NOTE: A seek by `TermState` might not capture the `AttributeSource`'s state. Callers must maintain the `AttributeSource` states separately

Specified by:
  `termState` in class `TermsEnum`
Throws:
  `IOException`
See Also:
  `TermState`, `TermsEnum.seekExact(BytesRef, TermState)`

#### seekExact

    public boolean seekExact(BytesRef text)
                      throws IOException

Description copied from class: `TermsEnum`
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 may be substantially faster than `TermsEnum.seekCeil(org.apache.lucene.util.BytesRef)`.

Specified by:
  `seekExact` in class `TermsEnum`
Returns:
  true if the term is found; return false if the enum is unpositioned.
Throws:
  `IOException`

#### seekExact

    public void seekExact(BytesRef term,
                          TermState state)
                   throws IOException

Description copied from class: `TermsEnum`
Expert: Seeks a specific position by `TermState` previously obtained from `TermsEnum.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.

Specified by:
  `seekExact` in class `TermsEnum`
Parameters:
  `term` - the term the TermState corresponds to
  `state` - the `TermState`
Throws:
  `IOException`

#### attributes

    public AttributeSource attributes()

Description copied from class: `TermsEnum`
Returns the related attributes.

Specified by:
  `attributes` in class `TermsEnum`