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

Methods
`Comparator<BytesRef>` `getComparator()` Return the BytesRef Comparator used to sort terms provided by the iterator.
`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.
`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` `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 that are accepted by the provided `CompiledAutomaton`.
`TermsEnum` `iterator(TermsEnum reuse)` 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 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

#### intersect

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

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

.

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

#### iterator

    public TermsEnum iterator(TermsEnum reuse)
                       throws IOException

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

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`

#### getComparator

    public Comparator<BytesRef> getComparator()

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

Specified by:
  `getComparator` 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`