ignore_above
Строки, длина которых превышает значение параметра ignore_above, не будут индексироваться и храниться. Для массивов строк параметр ignore_above будет применяться к каждому элементу массива отдельно, и строковые элементы, длина которых превышает ignore_above, не будут индексироваться или храниться.
Все строки/элементы массивов всё равно будут присутствовать в поле _source, если оно включено, что является значением по умолчанию в Elasticsearch.
PUT my-index-000001
{
"mappings": {
"properties": {
"message": {
"type": "keyword",
"ignore_above": 20
}
}
}
}
PUT my-index-000001/_doc/1
{
"message": "Syntax error"
}
PUT my-index-000001/_doc/2
{
"message": "Syntax error with some long stacktrace"
}
GET my-index-000001/_search
{
"aggs": {
"messages": {
"terms": {
"field": "message"
}
}
}
} | Это поле будет игнорировать любые строки, длина которых превышает 20 символов. | |
| Этот документ индексируется успешно. | |
| Этот документ будет индексирован, но без индексирования поля | |
| Поиск возвращает оба документа, но только первый присутствует в агрегации по терминам. |
Значение параметра ignore_above может быть обновлено для существующих полей с помощью API обновления отображения.
Этот параметр также полезен для защиты от ограничения длины байтов для термина в Lucene, которое составляет 32766.
Значение для ignore_above — это количество символов, но Lucene считает байты. Если вы используете текст UTF-8 с множеством символов, отличных от ASCII, вы можете установить предел до 32766 / 4 = 8191, так как символы UTF-8 могут занимать не более 4 байтов.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/ignore-above.html