org.apache.lucene.index

## Class Terms

- java.lang.Object
- - org.apache.lucene.index.Terms

Direct Known Subclasses:
  BlockTreeTermsReader.FieldReader, FilterAtomicReader.FilterTerms, MultiTerms

    public abstract class Terms
    extends Object

Access to the terms in a specific field. See `Fields`.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Field Summary

Fields
`static Terms[]` `EMPTY_ARRAY` Zero-length array of `Terms`.

### Constructor Summary

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

### Method Summary

Methods
`abstract Comparator<BytesRef>` `getComparator()` Return the BytesRef Comparator used to sort terms provided by the iterator.
`abstract int` `getDocCount()` Returns the number of documents that have at least one term for this field, or -1 if this measure isn't stored by the codec.
`abstract long` `getSumDocFreq()` Returns the sum of `TermsEnum.docFreq()` for all terms in this field, or -1 if this measure isn't stored by the codec.
`abstract long` `getSumTotalTermFreq()` Returns the sum of `TermsEnum.totalTermFreq()` for all terms in this field, or -1 if this measure isn't stored by the codec (or if this fields omits term freq and positions).
`abstract boolean` `hasOffsets()` Returns true if documents in this field store offsets.
`abstract boolean` `hasPayloads()` Returns true if documents in this field store payloads.
`abstract 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 that are accepted by the provided `CompiledAutomaton`.
`abstract TermsEnum` `iterator(TermsEnum reuse)` Returns an iterator that will step through all terms.
`abstract long` `size()` Returns the number of terms for this field, or -1 if this measure isn't stored by the codec.

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

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

### Field Detail

#### EMPTY_ARRAY

    public static final Terms[] EMPTY_ARRAY

Zero-length array of `Terms`.

### Constructor Detail

#### Terms

    protected Terms()

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

### Method Detail

#### iterator

    public abstract TermsEnum iterator(TermsEnum reuse)
                                throws IOException

Returns an iterator that will step through all terms. This method will not return null. If you have a previous TermsEnum, for example from a different field, you can pass it for possible reuse if the implementation can do so.

Throws:
  `IOException`

#### intersect

    public TermsEnum intersect(CompiledAutomaton compiled,
                      BytesRef startTerm)
                        throws IOException

Returns a TermsEnum that iterates over all terms that are accepted by the provided `CompiledAutomaton`. If the `startTerm` is provided then the returned enum will only accept 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.

NOTE: the returned TermsEnum cannot seek

.

Throws:
  `IOException`

#### getComparator

    public abstract Comparator<BytesRef> getComparator()

Return the BytesRef Comparator used to sort terms provided by the iterator. This method may return null if there are no terms. This method may be invoked many times; it's best to cache a single instance & reuse it.

#### size

    public abstract long size()
                       throws IOException

Returns the number of terms for this field, or -1 if this measure isn't stored by the codec. Note that, just like other term measures, this measure does not take deleted documents into account.

Throws:
  `IOException`

#### getSumTotalTermFreq

    public abstract long getSumTotalTermFreq()
                                      throws IOException

Returns the sum of `TermsEnum.totalTermFreq()` for all terms in this field, or -1 if this measure isn't stored by the codec (or if this fields omits term freq and positions). Note that, just like other term measures, this measure does not take deleted documents into account.

Throws:
  `IOException`

#### getSumDocFreq

    public abstract long getSumDocFreq()
                                throws IOException

Returns the sum of `TermsEnum.docFreq()` for all terms in this field, or -1 if this measure isn't stored by the codec. Note that, just like other term measures, this measure does not take deleted documents into account.

Throws:
  `IOException`

#### getDocCount

    public abstract int getDocCount()
                             throws IOException

Returns the number of documents that have at least one term for this field, or -1 if this measure isn't stored by the codec. Note that, just like other term measures, this measure does not take deleted documents into account.

Throws:
  `IOException`

#### hasOffsets

    public abstract boolean hasOffsets()

Returns true if documents in this field store offsets.

#### hasPositions

    public abstract boolean hasPositions()

Returns true if documents in this field store positions.

#### hasPayloads

    public abstract boolean hasPayloads()

Returns true if documents in this field store payloads.