Class FieldInfo


  • public final class FieldInfo
    extends Object
    Access to the Field Info file that describes document fields and whether or not they are indexed. Each segment has a separate Field Info file. Objects of this class are thread-safe for multiple readers, but only one thread can be adding documents at a time, with no other reader or writer threads accessing this object.
    • Field Detail

      • name

        public final String name
        Field's name
      • number

        public final int number
        Internal field number
    • Constructor Detail

      • FieldInfo

        public FieldInfo​(String name,
                         int number,
                         boolean storeTermVector,
                         boolean omitNorms,
                         boolean storePayloads,
                         IndexOptions indexOptions,
                         DocValuesType docValues,
                         long dvGen,
                         Map<String,​String> attributes,
                         int pointDimensionCount,
                         int pointIndexDimensionCount,
                         int pointNumBytes,
                         int vectorDimension,
                         VectorSimilarityFunction vectorSimilarityFunction,
                         boolean softDeletesField)
        Sole constructor.
        WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Method Detail

      • checkConsistency

        public void checkConsistency()
        Check correctness of the FieldInfo options
        Throws:
        IllegalArgumentException - if some options are incorrect
      • setPointDimensions

        public void setPointDimensions​(int dimensionCount,
                                       int indexDimensionCount,
                                       int numBytes)
        Record that this field is indexed with points, with the specified number of dimensions and bytes per dimension.
      • getPointDimensionCount

        public int getPointDimensionCount()
        Return point data dimension count
      • getPointIndexDimensionCount

        public int getPointIndexDimensionCount()
        Return point data dimension count
      • getPointNumBytes

        public int getPointNumBytes()
        Return number of bytes per dimension
      • getVectorDimension

        public int getVectorDimension()
        Returns the number of dimensions of the vector value
      • setDocValuesType

        public void setDocValuesType​(DocValuesType type)
        Record that this field is indexed with docvalues, with the specified type
      • getIndexOptions

        public IndexOptions getIndexOptions()
        Returns IndexOptions for the field, or IndexOptions.NONE if the field is not indexed
      • getName

        public String getName()
        Returns name of this field
        Returns:
        name
      • getFieldNumber

        public int getFieldNumber()
        Returns the field number
        Returns:
        field number
      • getDocValuesType

        public DocValuesType getDocValuesType()
        Returns DocValuesType of the docValues; this is DocValuesType.NONE if the field has no docvalues.
      • getDocValuesGen

        public long getDocValuesGen()
        Returns the docValues generation of this field, or -1 if no docValues updates exist for it.
      • omitsNorms

        public boolean omitsNorms()
        Returns true if norms are explicitly omitted for this field
      • setOmitsNorms

        public void setOmitsNorms()
        Omit norms for this field.
      • hasNorms

        public boolean hasNorms()
        Returns true if this field actually has any norms.
      • hasPayloads

        public boolean hasPayloads()
        Returns true if any payloads exist for this field.
      • hasVectors

        public boolean hasVectors()
        Returns true if any term vectors exist for this field.
      • hasVectorValues

        public boolean hasVectorValues()
        Returns whether any (numeric) vector values exist for this field
      • getAttribute

        public String getAttribute​(String key)
        Get a codec attribute value, or null if it does not exist
      • putAttribute

        public String putAttribute​(String key,
                                   String value)
        Puts a codec attribute value.

        This is a key-value mapping for the field that the codec can use to store additional metadata, and will be available to the codec when reading the segment via getAttribute(String)

        If a value already exists for the key in the field, it will be replaced with the new value. If the value of the attributes for a same field is changed between the documents, the behaviour after merge is undefined.

      • attributes

        public Map<String,​String> attributes()
        Returns internal codec attributes map.