Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Обработка данных ›Справочник по процессорам обработки данных

Процессор именования индекса по дате

Цель этого процессора — назначение документов соответствующему индексу по времени на основе поля даты или метки времени в документе с использованием поддержки даты-математики в именах индексов и псевдонимов.

Процессор устанавливает поле метаданных _index со значением выражения для имени индекса по дате-математике, основанном на указанном префиксе имени индекса, поле даты или метки времени в обрабатываемых документах и указанном округления даты.

Сначала этот процессор извлекает дату или метку времени из поля обрабатываемого документа. Дополнительно можно настроить форматирование даты для обработки значения поля в дату. Затем эта дата, указанный префикс имени индекса и указанное округление даты форматируются в выражение для имени индекса по дате-математике. Также здесь дополнительно можно указать форматирование даты для представления даты в выражении имени индекса по дате-математике.

Пример конвейера, который назначает документы месячному индексу, начинающемуся с префикса my-index-, на основе даты в поле date1:

PUT _ingest/pipeline/monthlyindex
{
  "description": "monthly date-time index naming",
  "processors" : [
    {
      "date_index_name" : {
        "field" : "date1",
        "index_name_prefix" : "my-index-",
        "date_rounding" : "M"
      }
    }
  ]
}

Использование этого конвейера для запроса индекса:

PUT /my-index/_doc/1?pipeline=monthlyindex
{
  "date1" : "2016-04-25T12:02:01.789Z"
}
{
  "_index" : "my-index-2016-04-01",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 55,
  "_primary_term" : 1
}

Вышеупомянутый запрос не добавит этот документ в индекс my-index, а в индекс my-index-2016-04-01, так как он был округлён по месяцам. Это происходит потому, что процессор date-index-name заменяет свойство _index документа.

Чтобы увидеть значение даты-математики индекса, предоставленного в фактическом запросе индекса, который привёл к индексированию документа в my-index-2016-04-01, мы можем просмотреть результаты процессора, используя симуляцию запроса.

POST _ingest/pipeline/_simulate
{
  "pipeline" :
  {
    "description": "monthly date-time index naming",
    "processors" : [
      {
        "date_index_name" : {
          "field" : "date1",
          "index_name_prefix" : "my-index-",
          "date_rounding" : "M"
        }
      }
    ]
  },
  "docs": [
    {
      "_source": {
        "date1": "2016-04-25T12:02:01.789Z"
      }
    }
  ]
}

и результат:

{
  "docs" : [
    {
      "doc" : {
        "_id" : "_id",
        "_index" : "<my-index-{2016-04-25||/M{yyyy-MM-dd|UTC}}>",
        "_type" : "_doc",
        "_source" : {
          "date1" : "2016-04-25T12:02:01.789Z"
        },
        "_ingest" : {
          "timestamp" : "2016-11-08T19:43:03.850+0000"
        }
      }
    }
  ]
}

Приведённый пример демонстрирует, что _index было установлено в значение <my-index-{2016-04-25||/M{yyyy-MM-dd|UTC}}>. Elasticsearch понимает это как 2016-04-01, как описано в документации по именам индексов по дате-математике

Таблица 11. Параметры именования индексов по дате

Имя Обязательно По умолчанию Описание

field

да

-

Поле для извлечения даты или метки времени.

index_name_prefix

нет

-

Префикс имени индекса, добавляемый перед датой. Поддерживает фрагменты шаблонов.

date_rounding

да

-

Способ округления даты при формировании имени индекса. Допустимые значения: y (год), M (месяц), w (неделя), d (день), h (час), m (минута) и s (секунда). Поддерживает фрагменты шаблонов.

date_formats

нет

yyyy-MM-dd'T'HH:mm:ss.SSSXX

Массив ожидаемых форматов даты/метки времени для парсинга в обрабатываемом документе. Может быть шаблоном Java или одним из следующих форматов: ISO8601, UNIX, UNIX_MS или TAI64N.

timezone

нет

UTC

Часовой пояс для парсинга даты и для преобразования выражений date math index в конкретные имена индексов.

locale

нет

ENGLISH

Локаль для парсинга даты из обрабатываемого документа, актуально при парсинге названий месяцев или дней недели.

index_name_format

нет

yyyy-MM-dd

Формат, используемый для отображения разобранной даты в имени индекса. Ожидается корректный шаблон Java. Поддерживает фрагменты шаблонов.

description

нет

-

Описание процессора. Полезно для описания цели процессора или его конфигурации.

if

нет

-

Условное выполнение процессора. См. Условное выполнение процессора.

ignore_failure

нет

false

Игнорирование ошибок процессора. См. Обработка сбоев конвейера.

on_failure

нет

-

Обработка сбоев процессора. См. Обработка сбоев конвейера.

tag

нет

-

Идентификатор процессора. Полезен для отладки и метрик.

© 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-index-name-processor.html

Spec-Zone.ru

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