Class FieldInfos

  • All Implemented Interfaces:
    Iterable<FieldInfo>

    public class FieldInfos
    extends Object
    implements Iterable<FieldInfo>
    Collection of FieldInfos (accessible by number or by name).
    WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Field Detail

      • EMPTY

        public static final FieldInfos EMPTY
        An instance without any fields.
    • Constructor Detail

      • FieldInfos

        public FieldInfos​(FieldInfo[] infos)
        Constructs a new FieldInfos from an array of FieldInfo objects
    • Method Detail

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

        public boolean hasVectors()
        Returns true if any fields have 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 VectorValues
      • getSoftDeletesField

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

        public int size()
        Returns the number of fields
      • 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