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.

### Nested Class Summary

Nested Classes
`static class` `FieldInfo.DocValuesType` DocValues types.
`static class` `FieldInfo.IndexOptions` Controls how much information is stored in the postings lists.

### Field Summary

Fields
`String` `name` Field's name
`int` `number` Internal field number

### Constructor Summary

Constructors
Constructor and Description
`FieldInfo(String name, boolean indexed, int number, boolean storeTermVector, boolean omitNorms, boolean storePayloads, FieldInfo.IndexOptions indexOptions, FieldInfo.DocValuesType docValues, FieldInfo.DocValuesType normsType, Map<String,String> attributes)` Sole Constructor.

### Method Summary

Methods
`Map<String,String>` `attributes()` Returns internal codec attributes map.
`String` `getAttribute(String key)` Get a codec attribute value, or null if it does not exist
`FieldInfo.DocValuesType` `getDocValuesType()` Returns `FieldInfo.DocValuesType` of the docValues.
`FieldInfo.IndexOptions` `getIndexOptions()` Returns IndexOptions for the field, or null if the field is not indexed
`FieldInfo.DocValuesType` `getNormType()` Returns `FieldInfo.DocValuesType` of the norm.
`boolean` `hasDocValues()` Returns true if this field has any docValues.
`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` `isIndexed()` Returns true if this field is indexed.
`boolean` `omitsNorms()` Returns true if norms are explicitly omitted for this field
`String` `putAttribute(String key, String value)` Puts a codec attribute value.

### 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,
             boolean indexed,
             int number,
             boolean storeTermVector,
             boolean omitNorms,
             boolean storePayloads,
             FieldInfo.IndexOptions indexOptions,
             FieldInfo.DocValuesType docValues,
             FieldInfo.DocValuesType normsType,
             Map<String,String> attributes)

Sole Constructor.

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

### Method Detail

#### getIndexOptions

    public FieldInfo.IndexOptions getIndexOptions()

Returns IndexOptions for the field, or null if the field is not indexed

#### hasDocValues

    public boolean hasDocValues()

Returns true if this field has any docValues.

#### getDocValuesType

    public FieldInfo.DocValuesType getDocValuesType()

Returns `FieldInfo.DocValuesType` of the docValues. this may be null if the field has no docvalues.

#### getNormType

    public FieldInfo.DocValuesType getNormType()

Returns `FieldInfo.DocValuesType` of the norm. this may be null if the field has no norms.

#### omitsNorms

    public boolean omitsNorms()

Returns true if norms are explicitly omitted for this field

#### hasNorms

    public boolean hasNorms()

Returns true if this field actually has any norms.

#### isIndexed

    public boolean isIndexed()

Returns true if this field is indexed.

#### 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. May be null if no mappings exist.