Package org.apache.lucene.index

# Class FieldInfos

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

All Implemented Interfaces:
  `Iterable<FieldInfo>`

public class FieldInfos extends Object implements Iterable<FieldInfo>
Collection of `FieldInfo`s (accessible by number or by name).

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 FieldInfos`
  `EMPTY`
  An instance without any fields.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FieldInfos(FieldInfo[] infos)`
  Constructs a new FieldInfos from an array of FieldInfo objects.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `FieldInfo`
  `fieldInfo(int fieldNumber)`
  Return the fieldinfo object referenced by the fieldNumber.
  `FieldInfo`
  `fieldInfo(String fieldName)`
  Return the fieldinfo object referenced by the field name
  `static Collection<String>`
  `getIndexedFields(IndexReader reader)`
  Returns a set of names of fields that have a terms index.
  `static FieldInfos`
  `getMergedFieldInfos(IndexReader reader)`
  Call this to get the (merged) FieldInfos for a composite reader.
  `String`
  `getParentField()`
  Returns the parent document field name if exists; otherwise returns null
  `String`
  `getSoftDeletesField()`
  Returns the soft-deletes field name if exists; otherwise returns null
  `boolean`
  `hasDocValues()`
  Returns true if any fields have DocValues
  `boolean`
  `hasFreq()`
  Returns true if any fields have freqs
  `boolean`
  `hasNorms()`
  Returns true if any fields have norms
  `boolean`
  `hasOffsets()`
  Returns true if any fields have offsets
  `boolean`
  `hasPayloads()`
  Returns true if any fields have payloads
  `boolean`
  `hasPointValues()`
  Returns true if any fields have PointValues
  `boolean`
  `hasPostings()`
  Returns true if any fields have postings
  `boolean`
  `hasProx()`
  Returns true if any fields have positions
  `boolean`
  `hasTermVectors()`
  Returns true if any fields have term vectors
  `boolean`
  `hasVectorValues()`
  Returns true if any fields have vector values
  `Iterator<FieldInfo>`
  `iterator()`
  Returns an iterator over all the fieldinfo objects present, ordered by ascending field number
  `int`
  `size()`
  Returns the number of fields

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

- ## Field Details

  - ### EMPTY

    public static final FieldInfos EMPTY
    An instance without any fields.

- ## Constructor Details

  - ### FieldInfos

    public FieldInfos(FieldInfo[] infos)
    Constructs a new FieldInfos from an array of FieldInfo objects. The array can be used directly as the backing structure.

- ## Method Details

  - ### getMergedFieldInfos

    public static FieldInfos getMergedFieldInfos(IndexReader reader)
    Call this to get the (merged) FieldInfos for a composite reader.

    NOTE: the returned field numbers will likely not correspond to the actual field numbers in the underlying readers, and codec metadata (`FieldInfo.getAttribute(String)` will be unavailable.

  - ### getIndexedFields

    public static Collection<String> getIndexedFields(IndexReader reader)
    Returns a set of names of fields that have a terms index. The order is undefined.

  - ### hasFreq

    public boolean hasFreq()
    Returns true if any fields have freqs

  - ### hasPostings

    public boolean hasPostings()
    Returns true if any fields have postings

  - ### hasProx

    public boolean hasProx()
    Returns true if any fields have positions

  - ### hasPayloads

    public boolean hasPayloads()
    Returns true if any fields have payloads

  - ### hasOffsets

    public boolean hasOffsets()
    Returns true if any fields have offsets

  - ### hasTermVectors

    public boolean hasTermVectors()
    Returns true if any fields have term vectors

  - ### hasNorms

    public boolean hasNorms()
    Returns true if any fields have norms

  - ### hasDocValues

    public boolean hasDocValues()
    Returns true if any fields have DocValues

  - ### hasPointValues

    public boolean hasPointValues()
    Returns true if any fields have PointValues

  - ### hasVectorValues

    public boolean hasVectorValues()
    Returns true if any fields have vector values

  - ### getSoftDeletesField

    public String getSoftDeletesField()
    Returns the soft-deletes field name if exists; otherwise returns null

  - ### getParentField

    public String getParentField()
    Returns the parent document field name if exists; otherwise returns null

  - ### size

    public int size()
    Returns the number of fields

  - ### iterator

    public Iterator<FieldInfo> iterator()
    Returns an iterator over all the fieldinfo objects present, ordered by ascending field number
    Specified by:
      `iterator` in interface `Iterable<FieldInfo>`

  - ### fieldInfo

    public FieldInfo fieldInfo(String fieldName)
    Return the fieldinfo object referenced by the field name
    Returns:
      the FieldInfo object or null when the given fieldName doesn't exist.

  - ### fieldInfo

    public FieldInfo fieldInfo(int fieldNumber)
    Return the fieldinfo object referenced by the fieldNumber.
    Parameters:
      `fieldNumber` - field's number.
    Returns:
      the FieldInfo object or null when the given fieldNumber doesn't exist.
    Throws:
      `IllegalArgumentException` - if fieldNumber is negative