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 fromref
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
checkIfFrozen()
Throws an exception if this FieldType is frozen.DocValuesType
docValuesType()
DocValuesDocValuesType
: 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 indexboolean
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 keyint
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
setDocValuesType(DocValuesType type)
Sets the field's DocValuesTypevoid
setIndexOptions(IndexOptions value)
Sets the indexing options for the field:void
setOmitNorms(boolean value)
Set totrue
to omit normalization values for the field.void
setStored(boolean value)
Set totrue
to store this field.void
setStoreTermVectorOffsets(boolean value)
Set totrue
to also store token character offsets into the term vector for this field.void
setStoreTermVectorPayloads(boolean value)
Set totrue
to also store token payloads into the term vector for this field.void
setStoreTermVectorPositions(boolean value)
Set totrue
to also store token positions into the term vector for this field.void
setStoreTermVectors(boolean value)
Set totrue
if this field's indexed form should be also stored into term vectors.void
setTokenized(boolean value)
Set totrue
to tokenize this field's contents via the configuredAnalyzer
.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 storedboolean
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 theAnalyzer
.String
toString()
Prints a Field for human consumption.int
vectorDimension()
The number of dimensions of the field's vector valueVectorEncoding
vectorEncoding()
TheVectorEncoding
of the field's vector valueVectorSimilarityFunction
vectorSimilarityFunction()
TheVectorSimilarityFunction
of the field's vector value
-
-
-
Constructor Detail
-
FieldType
public FieldType(IndexableFieldType ref)
Create a new mutable FieldType with all of the properties fromref
-
FieldType
public FieldType()
Create a new FieldType with default properties.
-
-
Method Detail
-
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 storedThe default is
false
.- Specified by:
stored
in interfaceIndexableFieldType
- See Also:
setStored(boolean)
-
setStored
public void setStored(boolean value)
Set totrue
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 theAnalyzer
.This has no effect if
IndexableFieldType.indexOptions()
returns IndexOptions.NONE.The default is
true
.- Specified by:
tokenized
in interfaceIndexableFieldType
- See Also:
setTokenized(boolean)
-
setTokenized
public void setTokenized(boolean value)
Set totrue
to tokenize this field's contents via the configuredAnalyzer
.- 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 interfaceIndexableFieldType
- See Also:
setStoreTermVectors(boolean)
-
setStoreTermVectors
public void setStoreTermVectors(boolean value)
Set totrue
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 interfaceIndexableFieldType
- See Also:
setStoreTermVectorOffsets(boolean)
-
setStoreTermVectorOffsets
public void setStoreTermVectorOffsets(boolean value)
Set totrue
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 interfaceIndexableFieldType
- See Also:
setStoreTermVectorPositions(boolean)
-
setStoreTermVectorPositions
public void setStoreTermVectorPositions(boolean value)
Set totrue
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 interfaceIndexableFieldType
- See Also:
setStoreTermVectorPayloads(boolean)
-
setStoreTermVectorPayloads
public void setStoreTermVectorPayloads(boolean value)
Set totrue
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 interfaceIndexableFieldType
- See Also:
setOmitNorms(boolean)
-
setOmitNorms
public void setOmitNorms(boolean value)
Set totrue
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 indexThe default is
IndexOptions.DOCS_AND_FREQS_AND_POSITIONS
.- Specified by:
indexOptions
in interfaceIndexableFieldType
- 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 interfaceIndexableFieldType
-
pointIndexDimensionCount
public int pointIndexDimensionCount()
Description copied from interface:IndexableFieldType
The number of dimensions used for the index key- Specified by:
pointIndexDimensionCount
in interfaceIndexableFieldType
-
pointNumBytes
public int pointNumBytes()
Description copied from interface:IndexableFieldType
The number of bytes in each dimension's values.- Specified by:
pointNumBytes
in interfaceIndexableFieldType
-
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 interfaceIndexableFieldType
-
vectorEncoding
public VectorEncoding vectorEncoding()
Description copied from interface:IndexableFieldType
TheVectorEncoding
of the field's vector value- Specified by:
vectorEncoding
in interfaceIndexableFieldType
-
vectorSimilarityFunction
public VectorSimilarityFunction vectorSimilarityFunction()
Description copied from interface:IndexableFieldType
TheVectorSimilarityFunction
of the field's vector value- Specified by:
vectorSimilarityFunction
in interfaceIndexableFieldType
-
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 interfaceIndexableFieldType
- Returns:
- Map
-
toString
public String toString()
Prints a Field for human consumption.
-
docValuesType
public DocValuesType docValuesType()
DocValuesDocValuesType
: how the field's value will be indexed into docValues.The default is
null
(no docValues)- Specified by:
docValuesType
in interfaceIndexableFieldType
- 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()
-
-