Field data types
editField data types
editEach field has a field data type, or field type. This type indicates the
kind of data the field contains, such as strings or boolean values, and its
intended use. For example, you can index strings to both text
and keyword
fields. However, text
field values are analyzed for full-text
search while keyword
strings are left as-is for filtering and sorting.
Field types are grouped by family. Types in the same family support the same search functionality but may have different space usage or performance characteristics.
Currently, the only type family is keyword
, which consists of the keyword
,
constant_keyword
, and wildcard
field types. Other type families have only a
single field type. For example, the boolean
type family consists of one field
type: boolean
.
Common types
edit-
binary
- Binary value encoded as a Base64 string.
-
boolean
-
true
andfalse
values. - Keywords
-
The keyword family, including
keyword
,constant_keyword
, andwildcard
. - Numbers
-
Numeric types, such as
long
anddouble
, used to express amounts. - Dates
-
Date types, including
date
anddate_nanos
. -
alias
- Defines an alias for an existing field.
Objects and relational types
editStructured data types
editAggregate data types
edit-
histogram
- Pre-aggregated numerical values.
Text search types
edit-
text
- Analyzed, unstructured text.
-
annotated-text
- Text containing special markup. Used for identifying named entities.
-
completion
- Used for auto-complete suggestions.
-
search_as_you_type
-
text
-like type for as-you-type completion. -
token_count
- A count of tokens in a text.
Document ranking types
edit-
dense_vector
- Records dense vectors of float values.
-
sparse_vector
- Records sparse vectors of float values.
-
rank_feature
- Records a numeric feature to boost hits at query time.
-
rank_features
- Records numeric features to boost hits at query time.
Spatial data types
editOther types
edit-
percolator
- Indexes queries written in Query DSL.
Arrays
editIn Elasticsearch, arrays do not require a dedicated field data type. Any field can contain zero or more values by default, however, all values in the array must be of the same field type. 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 field types support multi-fields
via the fields
parameter.