Поддержка date math в именах индексов и псевдонимов индексов
Разрешение имён date math позволяет искать диапазон индексов или псевдонимов временных рядов, а не все индексы и фильтровать результаты. Ограничение количества индексов, по которым выполняется поиск, снижает нагрузку на кластер и повышает производительность поиска. Например, если вы ищете ошибки в ежедневных логах, вы можете использовать шаблон имени date math для ограничения поиска двумя прошлыми днями.
Большинство API, принимающих аргумент индекса или псевдонима индекса, поддерживают date math. Имя date math имеет следующий вид:
<static_name{date_math_expr{date_format|time_zone}}> Где:
| | Статический текст |
| | Динамическое выражение date math, которое вычисляет дату динамически |
| | Необязательный формат, в котором вычисленная дата должна быть представлена. По умолчанию |
| | Необязательная временная зона. По умолчанию |
Обратите внимание на использование строчных и заглавных букв в date_format. Например: mm обозначает минуту часа, а MM обозначает месяц года. Аналогично, hh обозначает час в диапазоне 1-12 в сочетании с AM/PM, а HH обозначает час в диапазоне 0-23 24-часового формата.
Выражения date math разрешаются независимо от локали. Следовательно, невозможно использовать другие календари, кроме григорианского.
Вы должны заключать имена date math в угловые скобки. Если вы используете имя в пути запроса, специальные символы должны быть закодированы в URI. Например:
# PUT /<my-index-{now/d}>
PUT /%3Cmy-index-%7Bnow%2Fd%7D%3E Кодирование процентов символов date math
Специальные символы, используемые для округления дат, должны быть закодированы в URI следующим образом:
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
Следующий пример показывает различные формы имён date math и конечные имена, к которым они приводят, если текущее время — полдень 22 марта 2024 года по UTC.
| Выражение | Преобразуется в |
|---|---|
|
|
|
|
|
|
|
|
|
|
Чтобы использовать символы { и } в статической части шаблона имени, экранируйте их обратным слешем \, например:
-
<elastic\{ON\}-{now/M}>преобразуется вelastic{ON}-2024.03.01
Следующий пример демонстрирует запрос поиска, который ищет индексы Logstash за последние три дня, предполагая, что индексы используют стандартный формат имени индекса Logstash, logstash-yyyy.MM.dd.
# GET /<logstash-{now/d-2d}>,<logstash-{now/d-1d}>,<logstash-{now/d}>/_search
GET /%3Clogstash-%7Bnow%2Fd-2d%7D%3E%2C%3Clogstash-%7Bnow%2Fd-1d%7D%3E%2C%3Clogstash-%7Bnow%2Fd%7D%3E/_search
{
"query" : {
"match": {
"test": "data"
}
}
}
© 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/date-math-index-names.html