docs/reference/elasticsearch/mapping-reference/ignore-above.md
Strings longer than the ignore_above setting will not be indexed or stored. For arrays of strings, ignore_above will be applied for each array element separately and string elements longer than ignore_above will not be indexed or stored.
::::{note}
All strings/array elements will still be present in the _source field, if the latter is enabled which is the default in Elasticsearch.
::::
PUT my-index-000001
{
"mappings": {
"properties": {
"message": {
"type": "keyword",
"ignore_above": 20 <1>
}
}
}
}
PUT my-index-000001/_doc/1 <2>
{
"message": "Syntax error"
}
PUT my-index-000001/_doc/2 <3>
{
"message": "Syntax error with some long stacktrace"
}
GET my-index-000001/_search <4>
{
"aggs": {
"messages": {
"terms": {
"field": "message"
}
}
}
}
message field.::::{tip}
The ignore_above setting can be updated on existing fields using the update mapping API.
::::
This option is also useful for protecting against Lucene’s term byte-length limit of 32766.
::::{note}
The value for ignore_above is the character count, but Lucene counts bytes. If you use UTF-8 text with many non-ASCII characters, you may want to set the limit to 32766 / 4 = 8191 since UTF-8 characters may occupy at most 4 bytes.
::::