Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Ingest pipelines ›Ingest processor reference

Процессор set

Устанавливает значение для указанного поля. Если поле уже существует, его значение будет заменено на предоставленное.

Таблица 36. Параметры процессора set

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

field

да

-

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

value

да*

-

Значение, которое будет установлено для поля. Поддерживает фрагменты шаблонов. Можно указать только одно из value или copy_from.

copy_from

нет

-

Исходное поле, которое будет скопировано в field, нельзя одновременно установить value. Поддерживаемые типы данных: boolean, number, array, object, string, date и т.д.

override

нет

true

Если процессор будет обновлять поля с существующим значением, отличным от null. При установке значения false, такие поля не будут изменяться.

ignore_empty_value

нет

false

Если true и value — это фрагмент шаблона, который оценивается как null или пустая строка, процессор тихо завершает работу, не изменяя документ.

media_type

нет

application/json

Тип MIME для кодирования value. Применяется только когда value — это фрагмент шаблона. Должно быть одним из application/json, text/plain или application/x-www-form-urlencoded.

description

нет

-

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

if

нет

-

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

ignore_failure

нет

false

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

on_failure

нет

-

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

tag

нет

-

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

{
  "description" : "sets the value of count to 1",
  "set": {
    "field": "count",
    "value": 1
  }
}

Этот процессор также может использоваться для копирования данных из одного поля в другое. Например:

PUT _ingest/pipeline/set_os
{
  "description": "sets the value of host.os.name from the field os",
  "processors": [
    {
      "set": {
        "field": "host.os.name",
        "value": "{{{os}}}"
      }
    }
  ]
}

POST _ingest/pipeline/set_os/_simulate
{
  "docs": [
    {
      "_source": {
        "os": "Ubuntu"
      }
    }
  ]
}

Результат:

{
  "docs" : [
    {
      "doc" : {
        "_index" : "_index",
        "_type" : "_doc",
        "_id" : "_id",
        "_source" : {
          "host" : {
            "os" : {
              "name" : "Ubuntu"
            }
          },
          "os" : "Ubuntu"
        },
        "_ingest" : {
          "timestamp" : "2019-03-11T21:54:37.909224Z"
        }
      }
    }
  ]
}

Содержимое поля, включая сложные значения, такие как массивы и объекты, можно скопировать в другое поле, используя copy_from:

PUT _ingest/pipeline/set_bar
{
  "description": "sets the value of bar from the field foo",
  "processors": [
    {
      "set": {
        "field": "bar",
        "copy_from": "foo"
      }
    }
  ]
}

POST _ingest/pipeline/set_bar/_simulate
{
  "docs": [
    {
      "_source": {
        "foo": ["foo1", "foo2"]
      }
    }
  ]
}

Результат:

{
  "docs" : [
    {
      "doc" : {
        "_index" : "_index",
        "_type" : "_doc",
        "_id" : "_id",
        "_source" : {
          "bar": ["foo1", "foo2"],
          "foo": ["foo1", "foo2"]
        },
        "_ingest" : {
          "timestamp" : "2020-09-30T12:55:17.742795Z"
        }
      }
    }
  ]
}

© 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/set-processor.html

Spec-Zone.ru

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