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

      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:
    • 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

      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:
    • 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 IndexReader.getTermVector(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

      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:
    • 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

      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:
    • 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

      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:
    • 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

      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:
    • 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

      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:
    • 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

      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:
    • 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
    • setVectorDimensionsAndSimilarityFunction

      public void setVectorDimensionsAndSimilarityFunction(int numDimensions, VectorSimilarityFunction distFunc)
      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
    • 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

      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:
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

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