WARNING: Version 6.1 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Field datatypes
editField datatypes
editElasticsearch supports a number of different datatypes for the fields in a document:
Core datatypes
edit- string
-
text
andkeyword
- Numeric datatypes
-
long
,integer
,short
,byte
,double
,float
,half_float
,scaled_float
- Date datatype
-
date
- Boolean datatype
-
boolean
- Binary datatype
-
binary
- Range datatypes
-
integer_range
,float_range
,long_range
,double_range
,date_range
Complex datatypes
edit- Object datatype
-
object
for single JSON objects - Nested datatype
-
nested
for arrays of JSON objects
Geo datatypes
edit- Geo-point datatype
-
geo_point
for lat/lon points - Geo-Shape datatype
-
geo_shape
for complex shapes like polygons
Specialised datatypes
edit- IP datatype
-
ip
for IPv4 and IPv6 addresses - Completion datatype
-
completion
to provide auto-complete suggestions - Token count datatype
-
token_count
to count the number of tokens in a string -
mapper-murmur3
-
murmur3
to compute hashes of values at index-time and store them in the index - Percolator type
- Accepts queries from the query-dsl
-
join
datatype - Defines parent/child relation for documents within the same index
Arrays
editIn Elasticsearch, arrays do not require a dedicated field datatype. Any field can contain zero or more values by default, however, all values in the array must be of the same datatype. See Arrays.
Multi-fields
editIt is often useful to index the same field in different ways for different
purposes. For instance, a string
field could be mapped as
a text
field for full-text search, and as a keyword
field for
sorting or aggregations. Alternatively, you could index a text field with
the standard
analyzer, the
english
analyzer, and the
french
analyzer.
This is the purpose of multi-fields. Most datatypes support multi-fields
via the fields
parameter.