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