Package org.apache.lucene.index

## Class FieldInfo

- java.lang.Object
- - org.apache.lucene.index.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 Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `String` | `name` | Field's name
    `int` | `number` | Internal field number

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `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, VectorEncoding vectorEncoding, VectorSimilarityFunction vectorSimilarityFunction, boolean softDeletesField, boolean isParentField)` | Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Map<String,​String>` | `attributes()` | Returns internal codec attributes map.
    `void` | `checkConsistency()` | Check correctness of the FieldInfo options
    `String` | `getAttribute​(String key)` | Get a codec attribute value, or null if it does not exist
    `long` | `getDocValuesGen()` | Returns the docValues generation of this field, or -1 if no docValues updates exist for it.
    `DocValuesType` | `getDocValuesType()` | Returns `DocValuesType` of the docValues; this is `DocValuesType.NONE` if the field has no docvalues.
    `int` | `getFieldNumber()` | Returns the field number
    `IndexOptions` | `getIndexOptions()` | Returns IndexOptions for the field, or IndexOptions.NONE if the field is not indexed
    `String` | `getName()` | Returns name of this field
    `int` | `getPointDimensionCount()` | Return point data dimension count
    `int` | `getPointIndexDimensionCount()` | Return point data dimension count
    `int` | `getPointNumBytes()` | Return number of bytes per dimension
    `int` | `getVectorDimension()` | Returns the number of dimensions of the vector value
    `VectorEncoding` | `getVectorEncoding()` | Returns the number of dimensions of the vector value
    `VectorSimilarityFunction` | `getVectorSimilarityFunction()` | Returns `VectorSimilarityFunction` for the field
    `boolean` | `hasNorms()` | Returns true if this field actually has any norms.
    `boolean` | `hasPayloads()` | Returns true if any payloads exist for this field.
    `boolean` | `hasVectors()` | Returns true if any term vectors exist for this field.
    `boolean` | `hasVectorValues()` | Returns whether any (numeric) vector values exist for this field
    `boolean` | `isParentField()` | Returns true if this field is configured and used as the parent document field field.
    `boolean` | `isSoftDeletesField()` | Returns true if this field is configured and used as the soft-deletes field.
    `boolean` | `omitsNorms()` | Returns true if norms are explicitly omitted for this field
    `String` | `putAttribute​(String key, String value)` | Puts a codec attribute value.
    `void` | `setDocValuesType​(DocValuesType type)` | Record that this field is indexed with docvalues, with the specified type
    `void` | `setOmitsNorms()` | Omit norms for this field.
    `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.

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

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

- - ### 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,
                           VectorEncoding vectorEncoding,
                           VectorSimilarityFunction vectorSimilarityFunction,
                           boolean softDeletesField,
                           boolean isParentField)

      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

    - #### getVectorEncoding

          public VectorEncoding getVectorEncoding()

      Returns the number of dimensions of the vector value

    - #### getVectorSimilarityFunction

          public VectorSimilarityFunction getVectorSimilarityFunction()

      Returns `VectorSimilarityFunction` for the field

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

    - #### isSoftDeletesField

          public boolean isSoftDeletesField()

      Returns true if this field is configured and used as the soft-deletes field. See `LiveIndexWriterConfig.softDeletesField`

    - #### isParentField

          public boolean isParentField()

      Returns true if this field is configured and used as the parent document field field. See `IndexWriterConfig.setParentField(String)`