Package org.apache.lucene.index

# Class Terms

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

Direct Known Subclasses:
  `FieldReader`, `FilterLeafReader.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
  Modifier and Type
  Field
  Description
  `static final Terms[]`
  `EMPTY_ARRAY`
  Zero-length array of `Terms`.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `Terms()`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract int`
  `getDocCount()`
  Returns the number of documents that have at least one term for this field.
  `BytesRef`
  `getMax()`
  Returns the largest term (in lexicographic order) in the field.
  `BytesRef`
  `getMin()`
  Returns the smallest term (in lexicographic order) in the field.
  `Object`
  `getStats()`
  Expert: returns additional information about this Terms instance for debugging purposes.
  `abstract long`
  `getSumDocFreq()`
  Returns the sum of `TermsEnum.docFreq()` for all terms in this field.
  `abstract long`
  `getSumTotalTermFreq()`
  Returns the sum of `TermsEnum.totalTermFreq()` for all terms in this field.
  `static Terms`
  `getTerms(LeafReader reader, String field)`
  Returns the `Terms` index for this field, or `EMPTY` if it has none.
  `abstract boolean`
  `hasFreqs()`
  Returns true if documents in this field store per-document term frequency (`PostingsEnum.freq()`).
  `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 and documents that are accepted by the provided `CompiledAutomaton`.
  `abstract TermsEnum`
  `iterator()`
  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 Details

  - ### EMPTY_ARRAY

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

- ## Constructor Details

  - ### Terms

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

- ## Method Details

  - ### getTerms

    public static Terms getTerms(LeafReader reader, String field) throws IOException
    Returns the `Terms` index for this field, or `EMPTY` if it has none.
    Returns:
      terms instance, or an empty instance if `field` does not exist in this reader
    Throws:
      `IOException` - if an I/O error occurs.

  - ### iterator

    public abstract TermsEnum iterator() throws IOException
    Returns an iterator that will step through all terms. This method will not return null.
    Throws:
      `IOException`

  - ### intersect

    public TermsEnum intersect(CompiledAutomaton compiled, BytesRef startTerm) throws IOException
    Returns a TermsEnum that iterates over all terms and documents that are accepted by the provided `CompiledAutomaton`. If the `startTerm` is provided then the returned enum will only return 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.

    This is an expert low-level API and will only work for `NORMAL` compiled automata. To handle any compiled automata you should instead use `CompiledAutomaton.getTermsEnum(org.apache.lucene.index.Terms)` instead.

    NOTE: the returned TermsEnum cannot seek.

    Throws:
      `IOException`

  - ### 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. 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. 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. Note that, just like other term measures, this measure does not take deleted documents into account.
    Throws:
      `IOException`

  - ### hasFreqs

    public abstract boolean hasFreqs()
    Returns true if documents in this field store per-document term frequency (`PostingsEnum.freq()`).

  - ### 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.

  - ### getMin

    public BytesRef getMin() throws IOException
    Returns the smallest term (in lexicographic order) in the field. Note that, just like other term measures, this measure does not take deleted documents into account. This returns null when there are no terms.
    Throws:
      `IOException`

  - ### getMax

    public BytesRef getMax() throws IOException
    Returns the largest term (in lexicographic order) in the field. Note that, just like other term measures, this measure does not take deleted documents into account. This returns null when there are no terms.
    Throws:
      `IOException`

  - ### getStats

    public Object getStats() throws IOException
    Expert: returns additional information about this Terms instance for debugging purposes.
    Throws:
      `IOException`