Package org.apache.lucene.index

# Class MultiFields

java.lang.Object
org.apache.lucene.index.Fields
org.apache.lucene.index.MultiFields

All Implemented Interfaces:
  `Iterable<String>`

public final class MultiFields extends Fields
Provides a single `Fields` term index view over an `IndexReader`. This is useful when you're interacting with an `IndexReader` implementation that consists of sequential sub-readers (eg `DirectoryReader` or `MultiReader`) and you must treat it as a `LeafReader`.

NOTE: for composite readers, you'll get better performance by gathering the sub readers using `IndexReader.getContext()` to get the atomic leaves and then operate per-LeafReader, instead of using this class.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Field Summary

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

  `EMPTY_ARRAY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MultiFields(Fields[] subs, ReaderSlice[] subSlices)`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Iterator<String>`
  `iterator()`
  Returns an iterator that will step through all fields names.
  `int`
  `size()`
  Returns the number of fields or -1 if the number of distinct field names is unknown.
  `Terms`
  `terms(String field)`
  Get the `Terms` for this field.

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

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

  ### Methods inherited from interface java.lang.Iterable

  `forEach, spliterator`

- ## Constructor Details

  - ### MultiFields

    public MultiFields(Fields[] subs, ReaderSlice[] subSlices)
    Sole constructor.

- ## Method Details

  - ### iterator

    public Iterator<String> iterator()
    Description copied from class: `Fields`
    Returns an iterator that will step through all fields names. This will not return null.
    Specified by:
      `iterator` in interface `Iterable<String>`
    Specified by:
      `iterator` in class `Fields`

  - ### terms

    public Terms terms(String field) throws IOException
    Description copied from class: `Fields`
    Get the `Terms` for this field. This will return null if the field does not exist.
    Specified by:
      `terms` in class `Fields`
    Throws:
      `IOException`

  - ### size

    public int size()
    Description copied from class: `Fields`
    Returns the number of fields or -1 if the number of distinct field names is unknown. If >= 0, `Fields.iterator()` will return as many field names.
    Specified by:
      `size` in class `Fields`