| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | [[ignore-above]]=== `ignore_above`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.[source,console]--------------------------------------------------PUT my_index{  "mappings": {    "properties": {      "message": {        "type": "keyword",        "ignore_above": 20 <1>      }    }  }}PUT my_index/_doc/1 <2>{  "message": "Syntax error"}PUT my_index/_doc/2 <3>{  "message": "Syntax error with some long stacktrace"}GET my_index/_search <4>{  "aggs": {    "messages": {      "terms": {        "field": "message"      }    }  }}--------------------------------------------------<1> This field will ignore any string longer than 20 characters.<2> This document is indexed successfully.<3> This document will be indexed, but without indexing the `message` field.<4> Search returns both documents, but only the first is present in the terms aggregation.TIP: The `ignore_above` setting can be updated onexisting fields using the <<indices-put-mapping,PUT mapping API>>.This option is also useful for protecting against Lucene's term byte-lengthlimit of `32766`.NOTE: The value for `ignore_above` is the _character count_, but Lucene countsbytes. If you use UTF-8 text with many non-ASCII characters, you may want toset the limit to `32766 / 4 = 8191` since UTF-8 characters may occupy at most4 bytes.
 |