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.
Keyword datatype
editKeyword datatype
editA field to index structured content such as email addresses, hostnames, status codes, zip codes or tags.
They are typically used for filtering (Find me all blog posts where
status
is published
), for sorting, and for aggregations. Keyword
fields are only searchable by their exact value.
If you need to index full text content such as email bodies or product
descriptions, it is likely that you should rather use a text
field.
Below is an example of a mapping for a keyword field:
PUT my_index { "mappings": { "my_type": { "properties": { "tags": { "type": "keyword" } } } } }
Parameters for keyword fields
editThe following parameters are accepted by keyword
fields:
Mapping field-level query time boosting. Accepts a floating point number, defaults
to |
|
Should the field be stored on disk in a column-stride fashion, so that it
can later be used for sorting, aggregations, or scripting? Accepts |
|
Should global ordinals be loaded eagerly on refresh? Accepts |
|
Multi-fields allow the same string value to be indexed in multiple ways for different purposes, such as one field for search and a multi-field for sorting and aggregations. |
|
Do not index any string longer than this value. Defaults to
|
|
Should the field be searchable? Accepts |
|
What information should be stored in the index, for scoring purposes.
Defaults to |
|
Whether field-length should be taken into account when scoring queries.
Accepts |
|
Accepts a string value which is substituted for any explicit |
|
Whether the field value should be stored and retrievable separately from
the |
|
Which scoring algorithm or similarity should be used. Defaults
to |
|
How to pre-process the keyword prior to indexing. Defaults to |
Indexes imported from 2.x do not support keyword
. Instead they will
attempt to downgrade keyword
into string
. This allows you to merge modern
mappings with legacy mappings. Long lived indexes will have to be recreated
before upgrading to 6.x but mapping downgrade gives you the opportunity to do
the recreation on your own schedule.