IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. 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.