Field Types Included with Solr
The following table lists the field types that are available in Solr and are recommended.
The page further down, lists all the deprecated types for those migrating from older version of Solr.
The org.apache.solr.schema
package includes all the classes listed in this table.
Recommended Field Types
Class | Description |
---|---|
BBoxField |
Indexes a single rectangle (bounding box) per document field and supports searching via a bounding box. See the section Spatial Search for more information. |
BinaryField |
Binary data. |
BoolField |
Contains either true or false. Values of |
CollationField |
Supports Unicode collation for sorting and range queries. The ICUCollationField is a better choice if you can use ICU4J. See the section Unicode Collation for more information. |
CurrencyFieldType |
Supports currencies and exchange rates. See the section Currencies and Exchange Rates for more information. |
DateRangeField |
Supports indexing date ranges, to include point in time date instances as well (single-millisecond durations). See the section Date Formatting and Date Math for more detail on using this field type. Consider using this field type even if it’s just for date instances, particularly when the queries typically fall on UTC year/month/day/hour, etc., boundaries. |
DenseVectorField |
Supports indexing dense vectors of float values. See the section Dense Vector Search for more information. |
DatePointField |
Date field. Represents a point in time with millisecond precision, encoded using a "Dimensional Points" based data structure that allows for very efficient searches for specific values, or ranges of values. See the section Date Formatting and Date Math for more details on the supported syntax. For single valued fields, |
DoublePointField |
Double field (64-bit IEEE floating point). This class encodes double values using a "Dimensional Points" based data structure that allows for very efficient searches for specific values, or ranges of values. For single valued fields, |
ExternalFileField |
Pulls values from a file on disk. See the section External Files and Processes for more information. |
EnumFieldType |
Allows defining an enumerated set of values which may not be easily sorted by either alphabetic or numeric order (such as a list of severities, for example). This field type takes a configuration file, which lists the proper order of the field values. See the section Enum Fields for more information. |
FloatPointField |
Floating point field (32-bit IEEE floating point). This class encodes float values using a "Dimensional Points" based data structure that allows for very efficient searches for specific values, or ranges of values. For single valued fields, |
ICUCollationField |
Supports Unicode collation for sorting and range queries. See the section Unicode Collation for more information. |
IntPointField |
Integer field (32-bit signed integer). This class encodes int values using a "Dimensional Points" based data structure that allows for very efficient searches for specific values, or ranges of values. For single valued fields, |
LatLonPointSpatialField |
A latitude/longitude coordinate pair; possibly multi-valued for multiple points. Usually it’s specified as "lat,lon" order with a comma. See the section Spatial Search for more information. |
LongPointField |
Long field (64-bit signed integer). This class encodes foo values using a "Dimensional Points" based data structure that allows for very efficient searches for specific values, or ranges of values. For single valued fields, |
NestPathField |
Specialized field type storing ehanced information, when working with nested documents. |
PointType |
A single-valued n-dimensional point. It’s both for sorting spatial data that is not lat-lon, and for some more rare use-cases. (NOTE: this is not related to the "Point" based numeric fields). See Spatial Search for more information. |
PreAnalyzedField |
Provides a way to send to Solr serialized token streams, optionally with independent stored values of a field, and have this information stored and indexed without any additional text processing. Configuration and usage of PreAnalyzedField is documented in the section PreAnalyzedField Type. |
RandomSortField |
Does not contain a value. Queries that sort on this field type will return results in random order. Use a dynamic field to use this feature. |
RankField |
Can be used to store scoring factors to improve document ranking. To be used in combination with RankQParserPlugin. |
RptWithGeometrySpatialField |
A derivative of |
SortableTextField |
A specialized version of TextField that allows (and defaults to) |
SpatialRecursivePrefixTreeFieldType |
(RPT for short) Accepts latitude comma longitude strings or other shapes in WKT format. See Spatial Search for more information. |
StrField |
String (UTF-8 encoded string or Unicode). Strings are intended for small fields and are not tokenized or analyzed in any way. They have a hard limit of slightly less than 32K. |
TextField |
Text, usually multiple words or tokens. In normal usage, only fields of type TextField or SortableTextField will specify an analyzer. |
UUIDField |
Universally Unique Identifier (UUID). Pass in a value of Note: configuring a UUIDField instance with a default value of |
Deprecated Field Types
All Trie* numeric and date field types have been deprecated in favor of *Point field types. Point field types are better at range queries (speed, memory, disk), however simple field:value queries underperform relative to Trie. Either accept this, or continue to use Trie fields. This shortcoming may be addressed in a future release. |
Class | Description |
---|---|
CurrencyField |
Use CurrencyFieldType instead. |
EnumField |
Use EnumFieldType instead. |
TrieDateField |
Use DatePointField instead. |
TrieDoubleField |
Use DoublePointField instead. |
TrieFloatField |
Use FloatPointField instead. |
TrieIntField |
Use IntPointField instead. |
TrieLongField |
Use LongPointField instead. |
TrieField |
This field takes a |