Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Руководство [7.17] ›REST API ›Конвенции API

Поддержка date math в именах индексов и псевдонимов индексов

Разрешение имён date math позволяет искать диапазон индексов или псевдонимов временных рядов, а не все индексы и фильтровать результаты. Ограничение количества индексов, по которым выполняется поиск, снижает нагрузку на кластер и повышает производительность поиска. Например, если вы ищете ошибки в ежедневных логах, вы можете использовать шаблон имени date math для ограничения поиска двумя прошлыми днями.

Большинство API, принимающих аргумент индекса или псевдонима индекса, поддерживают date math. Имя date math имеет следующий вид:

<static_name{date_math_expr{date_format|time_zone}}>

Где:

static_name

Статический текст

date_math_expr

Динамическое выражение date math, которое вычисляет дату динамически

date_format

Необязательный формат, в котором вычисленная дата должна быть представлена. По умолчанию yyyy.MM.dd. Формат должен быть совместим с java-time https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

time_zone

Необязательная временная зона. По умолчанию UTC.

Обратите внимание на использование строчных и заглавных букв в 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 следующим образом:

<

%3C

>

%3E

/

%2F

{

%7B

}

%7D

|

%7C

+

%2B

:

%3A

,

%2C

Следующий пример показывает различные формы имён date math и конечные имена, к которым они приводят, если текущее время — полдень 22 марта 2024 года по UTC.

Выражение Преобразуется в

<logstash-{now/d}>

logstash-2024.03.22

<logstash-{now/M}>

logstash-2024.03.01

<logstash-{now/M{yyyy.MM}}>

logstash-2024.03

<logstash-{now/M-1M{yyyy.MM}}>

logstash-2024.02

<logstash-{now/d{yyyy.MM.dd|+12:00}}>

logstash-2024.03.23

Чтобы использовать символы { и } в статической части шаблона имени, экранируйте их обратным слешем \, например:

  • <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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API