Field datatypes

edit

Elasticsearch supports a number of different datatypes for the fields in a document:

Core datatypes

edit
String datatype
string
Numeric datatypes
long, integer, short, byte, double, float
Date datatype
date
Boolean datatype
boolean
Binary datatype
binary

Complex datatypes

edit
Array datatype
Array support does not require a dedicated type
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
IPv4 datatype
ip for IPv4 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
Attachment datatype
See the mapper-attachments plugin which supports indexing attachments like Microsoft Office formats, Open Document formats, ePub, HTML, etc. into an attachment datatype.

Multi-fields

edit

It is often useful to index the same field in different ways for different purposes. For instance, a string field could be indexed as an analyzed field for full-text search, and as a not_analyzed field for sorting or aggregations. Alternatively, you could index a string 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.