org.apache.lucene.index

## Class MultiTerms

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

-     public final class MultiTerms
      extends Terms

  Exposes flex API, merged from flex API of sub-segments.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.index.Terms

      `EMPTY_ARRAY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MultiTerms(Terms[] subs, ReaderSlice[] subSlices)` Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `BytesRef` | `getMax()` Returns the largest term (in lexicographic order) in the field.
    `BytesRef` | `getMin()` Returns the smallest term (in lexicographic order) in the field.
    `ReaderSlice[]` | `getSubSlices()` Expert: returns pointers to the sub-readers corresponding to the Terms being merged.
    `Terms[]` | `getSubTerms()` Expert: returns the Terms being merged.
    `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.
    `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).
    `boolean` | `hasFreqs()` Returns true if documents in this field store per-document term frequency (`PostingsEnum.freq()`).
    `boolean` | `hasOffsets()` Returns true if documents in this field store offsets.
    `boolean` | `hasPayloads()` Returns true if documents in this field store payloads.
    `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`.
    `TermsEnum` | `iterator()` Returns an iterator that will step through all terms.
    `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 org.apache.lucene.index.Terms

      `getStats`

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

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

- - ### Constructor Detail

    - #### MultiTerms

          public MultiTerms(Terms[] subs,
                            ReaderSlice[] subSlices)
                     throws IOException

      Sole constructor.
      Parameters:
        `subs` - The `Terms` instances of all sub-readers.
        `subSlices` - A parallel array (matching `subs`) describing the sub-reader slices.
      Throws:
        `IOException`

  - ### Method Detail

    - #### getSubTerms

          public Terms[] getSubTerms()

      Expert: returns the Terms being merged.

    - #### getSubSlices

          public ReaderSlice[] getSubSlices()

      Expert: returns pointers to the sub-readers corresponding to the Terms being merged.

    - #### intersect

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

      Description copied from class: `Terms`
      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

      .

      NOTE: the terms dictionary is free to return arbitrary terms as long as the resulted visited docs is the same. E.g., `BlockTreeTermsWriter` creates auto-prefix terms during indexing to reduce the number of terms visited.

      Overrides:
        `intersect` in class `Terms`
      Throws:
        `IOException`

    - #### getMin

          public BytesRef getMin()
                          throws IOException

      Description copied from class: `Terms`
      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.
      Overrides:
        `getMin` in class `Terms`
      Throws:
        `IOException`

    - #### getMax

          public BytesRef getMax()
                          throws IOException

      Description copied from class: `Terms`
      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.
      Overrides:
        `getMax` in class `Terms`
      Throws:
        `IOException`

    - #### iterator

          public TermsEnum iterator()
                             throws IOException

      Description copied from class: `Terms`
      Returns an iterator that will step through all terms. This method will not return null.
      Specified by:
        `iterator` in class `Terms`
      Throws:
        `IOException`

    - #### size

          public long size()

      Description copied from class: `Terms`
      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.
      Specified by:
        `size` in class `Terms`

    - #### getSumTotalTermFreq

          public long getSumTotalTermFreq()
                                   throws IOException

      Description copied from class: `Terms`
      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.
      Specified by:
        `getSumTotalTermFreq` in class `Terms`
      Throws:
        `IOException`

    - #### getSumDocFreq

          public long getSumDocFreq()
                             throws IOException

      Description copied from class: `Terms`
      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.
      Specified by:
        `getSumDocFreq` in class `Terms`
      Throws:
        `IOException`

    - #### getDocCount

          public int getDocCount()
                          throws IOException

      Description copied from class: `Terms`
      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.
      Specified by:
        `getDocCount` in class `Terms`
      Throws:
        `IOException`

    - #### hasFreqs

          public boolean hasFreqs()

      Description copied from class: `Terms`
      Returns true if documents in this field store per-document term frequency (`PostingsEnum.freq()`).
      Specified by:
        `hasFreqs` in class `Terms`

    - #### hasOffsets

          public boolean hasOffsets()

      Description copied from class: `Terms`
      Returns true if documents in this field store offsets.
      Specified by:
        `hasOffsets` in class `Terms`

    - #### hasPositions

          public boolean hasPositions()

      Description copied from class: `Terms`
      Returns true if documents in this field store positions.
      Specified by:
        `hasPositions` in class `Terms`

    - #### hasPayloads

          public boolean hasPayloads()

      Description copied from class: `Terms`
      Returns true if documents in this field store payloads.
      Specified by:
        `hasPayloads` in class `Terms`

Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.