FieldType (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.document, class: FieldType

Package org.apache.lucene.document

# Class FieldType

java.lang.Object
org.apache.lucene.document.FieldType

All Implemented Interfaces:
  `IndexableFieldType`

public class FieldType extends Object implements IndexableFieldType
Describes the properties of a field.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FieldType()`
  Create a new FieldType with default properties.
  `FieldType(IndexableFieldType ref)`
  Create a new mutable FieldType with all of the properties from `ref`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `checkIfFrozen()`
  Throws an exception if this FieldType is frozen.
  `DocValuesSkipIndexType`
  `docValuesSkipIndexType()`
  Whether a skip index for doc values should be created on this field.
  `DocValuesType`
  `docValuesType()`
  DocValues `DocValuesType`: how the field's value will be indexed into docValues.
  `boolean`
  `equals(Object obj)`
  `void`
  `freeze()`
  Prevents future changes.
  `Map<String,String>`
  `getAttributes()`
  Attributes for the field type.
  `int`
  `hashCode()`
  `IndexOptions`
  `indexOptions()`
  `IndexOptions`, describing what should be recorded into the inverted index
  `boolean`
  `isFrozen()`
  Returns the frozen FieldTypes's state.
  `boolean`
  `omitNorms()`
  True if normalization values should be omitted for the field.
  `int`
  `pointDimensionCount()`
  If this is positive (representing the number of point dimensions), the field is indexed as a point.
  `int`
  `pointIndexDimensionCount()`
  The number of dimensions used for the index key
  `int`
  `pointNumBytes()`
  The number of bytes in each dimension's values.
  `String`
  `putAttribute(String key, String value)`
  Puts an attribute value.
  `void`
  `setDimensions(int dimensionCount, int dimensionNumBytes)`
  Enables points indexing.
  `void`
  `setDimensions(int dimensionCount, int indexDimensionCount, int dimensionNumBytes)`
  Enables points indexing with selectable dimension indexing.
  `void`
  `setDocValuesSkipIndexType(DocValuesSkipIndexType docValuesSkipIndex)`
  Set whether to enable a skip index for doc values on this field.
  `void`
  `setDocValuesType(DocValuesType type)`
  Sets the field's DocValuesType
  `void`
  `setIndexOptions(IndexOptions value)`
  Sets the indexing options for the field:
  `void`
  `setOmitNorms(boolean value)`
  Set to `true` to omit normalization values for the field.
  `void`
  `setStored(boolean value)`
  Set to `true` to store this field.
  `void`
  `setStoreTermVectorOffsets(boolean value)`
  Set to `true` to also store token character offsets into the term vector for this field.
  `void`
  `setStoreTermVectorPayloads(boolean value)`
  Set to `true` to also store token payloads into the term vector for this field.
  `void`
  `setStoreTermVectorPositions(boolean value)`
  Set to `true` to also store token positions into the term vector for this field.
  `void`
  `setStoreTermVectors(boolean value)`
  Set to `true` if this field's indexed form should be also stored into term vectors.
  `void`
  `setTokenized(boolean value)`
  Set to `true` to tokenize this field's contents via the configured `Analyzer`.
  `void`
  `setVectorAttributes(int numDimensions, VectorEncoding encoding, VectorSimilarityFunction similarity)`
  Enable vector indexing, with the specified number of dimensions and distance function.
  `boolean`
  `stored()`
  True if the field's value should be stored
  `boolean`
  `storeTermVectorOffsets()`
  True if this field's token character offsets should also be stored into term vectors.
  `boolean`
  `storeTermVectorPayloads()`
  True if this field's token payloads should also be stored into the term vectors.
  `boolean`
  `storeTermVectorPositions()`
  True if this field's token positions should also be stored into the term vectors.
  `boolean`
  `storeTermVectors()`
  True if this field's indexed form should be also stored into term vectors.
  `boolean`
  `tokenized()`
  True if this field's value should be analyzed by the `Analyzer`.
  `String`
  `toString()`
  Prints a Field for human consumption.
  `int`
  `vectorDimension()`
  The number of dimensions of the field's vector value
  `VectorEncoding`
  `vectorEncoding()`
  The `VectorEncoding` of the field's vector value
  `VectorSimilarityFunction`
  `vectorSimilarityFunction()`
  The `VectorSimilarityFunction` of the field's vector value

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

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### FieldType

    public FieldType(IndexableFieldType ref)
    Create a new mutable FieldType with all of the properties from `ref`

  - ### FieldType

    public FieldType()
    Create a new FieldType with default properties.

- ## Method Details

  - ### checkIfFrozen

    protected void checkIfFrozen()
    Throws an exception if this FieldType is frozen. Subclasses should call this within setters for additional state.

  - ### freeze

    public void freeze()
    Prevents future changes. Note, it is recommended that this is called once the FieldTypes's properties have been set, to prevent unintentional state changes.

  - ### isFrozen

    public boolean isFrozen()
    Returns the frozen FieldTypes's state.
    Returns:
      `true` if this FieldType is frozen against future modifications.

  - ### stored

    public boolean stored()
    True if the field's value should be stored

    The default is `false`.

    Specified by:
      `stored` in interface `IndexableFieldType`
    See Also:
      - `setStored(boolean)`

  - ### setStored

    public void setStored(boolean value)
    Set to `true` to store this field.
    Parameters:
      `value` - true if this field should be stored.
    Throws:
      `IllegalStateException` - if this FieldType is frozen against future modifications.
    See Also:
      - `stored()`

  - ### tokenized

    public boolean tokenized()
    True if this field's value should be analyzed by the `Analyzer`.

    This has no effect if `IndexableFieldType.indexOptions()` returns IndexOptions.NONE.

    The default is `true`.

    Specified by:
      `tokenized` in interface `IndexableFieldType`
    See Also:
      - `setTokenized(boolean)`

  - ### setTokenized

    public void setTokenized(boolean value)
    Set to `true` to tokenize this field's contents via the configured `Analyzer`.
    Parameters:
      `value` - true if this field should be tokenized.
    Throws:
      `IllegalStateException` - if this FieldType is frozen against future modifications.
    See Also:
      - `tokenized()`

  - ### storeTermVectors

    public boolean storeTermVectors()
    True if this field's indexed form should be also stored into term vectors.

    This builds a miniature inverted-index for this field which can be accessed in a document-oriented way from `TermVectors.get(int,String)`.

    This option is illegal if `IndexableFieldType.indexOptions()` returns IndexOptions.NONE.

    The default is `false`.

    Specified by:
      `storeTermVectors` in interface `IndexableFieldType`
    See Also:
      - `setStoreTermVectors(boolean)`

  - ### setStoreTermVectors

    public void setStoreTermVectors(boolean value)
    Set to `true` if this field's indexed form should be also stored into term vectors.
    Parameters:
      `value` - true if this field should store term vectors.
    Throws:
      `IllegalStateException` - if this FieldType is frozen against future modifications.
    See Also:
      - `storeTermVectors()`

  - ### storeTermVectorOffsets

    public boolean storeTermVectorOffsets()
    True if this field's token character offsets should also be stored into term vectors.

    This option is illegal if term vectors are not enabled for the field (`IndexableFieldType.storeTermVectors()` is false)

    The default is `false`.

    Specified by:
      `storeTermVectorOffsets` in interface `IndexableFieldType`
    See Also:
      - `setStoreTermVectorOffsets(boolean)`

  - ### setStoreTermVectorOffsets

    public void setStoreTermVectorOffsets(boolean value)
    Set to `true` to also store token character offsets into the term vector for this field.
    Parameters:
      `value` - true if this field should store term vector offsets.
    Throws:
      `IllegalStateException` - if this FieldType is frozen against future modifications.
    See Also:
      - `storeTermVectorOffsets()`

  - ### storeTermVectorPositions

    public boolean storeTermVectorPositions()
    True if this field's token positions should also be stored into the term vectors.

    This option is illegal if term vectors are not enabled for the field (`IndexableFieldType.storeTermVectors()` is false).

    The default is `false`.

    Specified by:
      `storeTermVectorPositions` in interface `IndexableFieldType`
    See Also:
      - `setStoreTermVectorPositions(boolean)`

  - ### setStoreTermVectorPositions

    public void setStoreTermVectorPositions(boolean value)
    Set to `true` to also store token positions into the term vector for this field.
    Parameters:
      `value` - true if this field should store term vector positions.
    Throws:
      `IllegalStateException` - if this FieldType is frozen against future modifications.
    See Also:
      - `storeTermVectorPositions()`

  - ### storeTermVectorPayloads

    public boolean storeTermVectorPayloads()
    True if this field's token payloads should also be stored into the term vectors.

    This option is illegal if term vector positions are not enabled for the field (`IndexableFieldType.storeTermVectors()` is false).

    The default is `false`.

    Specified by:
      `storeTermVectorPayloads` in interface `IndexableFieldType`
    See Also:
      - `setStoreTermVectorPayloads(boolean)`

  - ### setStoreTermVectorPayloads

    public void setStoreTermVectorPayloads(boolean value)
    Set to `true` to also store token payloads into the term vector for this field.
    Parameters:
      `value` - true if this field should store term vector payloads.
    Throws:
      `IllegalStateException` - if this FieldType is frozen against future modifications.
    See Also:
      - `storeTermVectorPayloads()`

  - ### omitNorms

    public boolean omitNorms()
    True if normalization values should be omitted for the field.

    This saves memory, but at the expense of scoring quality (length normalization will be disabled), and if you omit norms, you cannot use index-time boosts.

    The default is `false`.

    Specified by:
      `omitNorms` in interface `IndexableFieldType`
    See Also:
      - `setOmitNorms(boolean)`

  - ### setOmitNorms

    public void setOmitNorms(boolean value)
    Set to `true` to omit normalization values for the field.
    Parameters:
      `value` - true if this field should omit norms.
    Throws:
      `IllegalStateException` - if this FieldType is frozen against future modifications.
    See Also:
      - `omitNorms()`

  - ### indexOptions

    public IndexOptions indexOptions()
    `IndexOptions`, describing what should be recorded into the inverted index

    The default is `IndexOptions.DOCS_AND_FREQS_AND_POSITIONS`.

    Specified by:
      `indexOptions` in interface `IndexableFieldType`
    See Also:
      - `setIndexOptions(IndexOptions)`

  - ### setIndexOptions

    public void setIndexOptions(IndexOptions value)
    Sets the indexing options for the field:
    Parameters:
      `value` - indexing options
    Throws:
      `IllegalStateException` - if this FieldType is frozen against future modifications.
    See Also:
      - `indexOptions()`

  - ### setDimensions

    public void setDimensions(int dimensionCount, int dimensionNumBytes)
    Enables points indexing.

  - ### setDimensions

    public void setDimensions(int dimensionCount, int indexDimensionCount, int dimensionNumBytes)
    Enables points indexing with selectable dimension indexing.

  - ### pointDimensionCount

    public int pointDimensionCount()
    Description copied from interface: `IndexableFieldType`
    If this is positive (representing the number of point dimensions), the field is indexed as a point.
    Specified by:
      `pointDimensionCount` in interface `IndexableFieldType`

  - ### pointIndexDimensionCount

    public int pointIndexDimensionCount()
    Description copied from interface: `IndexableFieldType`
    The number of dimensions used for the index key
    Specified by:
      `pointIndexDimensionCount` in interface `IndexableFieldType`

  - ### pointNumBytes

    public int pointNumBytes()
    Description copied from interface: `IndexableFieldType`
    The number of bytes in each dimension's values.
    Specified by:
      `pointNumBytes` in interface `IndexableFieldType`

  - ### setVectorAttributes

    public void setVectorAttributes(int numDimensions, VectorEncoding encoding, VectorSimilarityFunction similarity)
    Enable vector indexing, with the specified number of dimensions and distance function.

  - ### vectorDimension

    public int vectorDimension()
    Description copied from interface: `IndexableFieldType`
    The number of dimensions of the field's vector value
    Specified by:
      `vectorDimension` in interface `IndexableFieldType`

  - ### vectorEncoding

    public VectorEncoding vectorEncoding()
    Description copied from interface: `IndexableFieldType`
    The `VectorEncoding` of the field's vector value
    Specified by:
      `vectorEncoding` in interface `IndexableFieldType`

  - ### vectorSimilarityFunction

    public VectorSimilarityFunction vectorSimilarityFunction()
    Description copied from interface: `IndexableFieldType`
    The `VectorSimilarityFunction` of the field's vector value
    Specified by:
      `vectorSimilarityFunction` in interface `IndexableFieldType`

  - ### putAttribute

    public String putAttribute(String key, String value)
    Puts an attribute value.

    This is a key-value mapping for the field that the codec can use to store additional metadata.

    If a value already exists for the field, it will be replaced with the new value. This method is not thread-safe, user must not add attributes while other threads are indexing documents with this field type.

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

  - ### getAttributes

    public Map<String,String> getAttributes()
    Description copied from interface: `IndexableFieldType`
    Attributes for the field type.

    Attributes are not thread-safe, user must not add attributes while other threads are indexing documents with this field type.

    Specified by:
      `getAttributes` in interface `IndexableFieldType`
    Returns:
      Map

  - ### toString

    public String toString()
    Prints a Field for human consumption.
    Overrides:
      `toString` in class `Object`

  - ### docValuesType

    public DocValuesType docValuesType()
    DocValues `DocValuesType`: how the field's value will be indexed into docValues.

    The default is `null` (no docValues)

    Specified by:
      `docValuesType` in interface `IndexableFieldType`
    See Also:
      - `setDocValuesType(DocValuesType)`

  - ### setDocValuesType

    public void setDocValuesType(DocValuesType type)
    Sets the field's DocValuesType
    Parameters:
      `type` - DocValues type, or null if no DocValues should be stored.
    Throws:
      `IllegalStateException` - if this FieldType is frozen against future modifications.
    See Also:
      - `docValuesType()`

  - ### docValuesSkipIndexType

    public DocValuesSkipIndexType docValuesSkipIndexType()
    Description copied from interface: `IndexableFieldType`
    Whether a skip index for doc values should be created on this field.
    Specified by:
      `docValuesSkipIndexType` in interface `IndexableFieldType`

  - ### setDocValuesSkipIndexType

    public void setDocValuesSkipIndexType(DocValuesSkipIndexType docValuesSkipIndex)
    Set whether to enable a skip index for doc values on this field. This is typically useful on fields that are part of the `index sort`, or that correlate with fields that are part of the index sort, so that values can be expected to be clustered in the doc ID space.

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`