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
`String` `name` Field's name
`int` `number` Internal field number

### Constructor Summary

Constructors
Constructor and Description
`FieldInfo(String name, int number, boolean storeTermVector, boolean omitNorms, boolean storePayloads, IndexOptions indexOptions, DocValuesType docValues, long dvGen, Map<String,String> attributes, int pointDataDimensionCount, int pointIndexDimensionCount, int pointNumBytes, boolean softDeletesField)` Sole constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`Map<String,String>` `attributes()` Returns internal codec attributes map.
`boolean` `checkConsistency()` Performs internal consistency checks.
`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.
`IndexOptions` `getIndexOptions()` Returns IndexOptions for the field, or IndexOptions.NONE if the field is not indexed
`int` `getPointDataDimensionCount()` Return point data dimension count
`int` `getPointIndexDimensionCount()` Return point data dimension count
`int` `getPointNumBytes()` Return number of bytes per dimension
`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` `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` `setIndexOptions(IndexOptions newIndexOptions)` Record the `IndexOptions` to use with this field.
`void` `setOmitsNorms()` Omit norms for this field.
`void` `setPointDimensions(int dataDimensionCount, 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 pointDataDimensionCount,
                     int pointIndexDimensionCount,
                     int pointNumBytes,
                     boolean softDeletesField)

Sole constructor.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Method Detail

#### checkConsistency

    public boolean checkConsistency()

Performs internal consistency checks. Always returns true (or throws IllegalStateException)

#### setPointDimensions

    public void setPointDimensions(int dataDimensionCount,
                                   int indexDimensionCount,
                                   int numBytes)

Record that this field is indexed with points, with the specified number of dimensions and bytes per dimension.

#### getPointDataDimensionCount

    public int getPointDataDimensionCount()

Return point data dimension count

#### getPointIndexDimensionCount

    public int getPointIndexDimensionCount()

Return point data dimension count

#### getPointNumBytes

    public int getPointNumBytes()

Return number of bytes per dimension

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

#### setIndexOptions

    public void setIndexOptions(IndexOptions newIndexOptions)

Record the `IndexOptions` to use with this field.

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

#### 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 field, it will be replaced with the new value.

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