Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Конвейеры преобразования данных ›Справочник по процессорам преобразования данных

Процессор конвейера

Выполняет другой конвейер.

Таблица 34. Параметры конвейера

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

name

да

-

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

ignore_missing_pipeline

нет

false

Игнорировать отсутствующие конвейеры вместо сбоя.

description

нет

-

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

if

нет

-

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

ignore_failure

нет

false

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

on_failure

нет

-

Обрабатывать ошибки для процессора. См. Обработка ошибок конвейера.

tag

нет

-

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

{
  "pipeline": {
    "name": "inner-pipeline"
  }
}

Имя текущего конвейера можно получить из метаданных ingest по ключу _ingest.pipeline.

Пример использования этого процессора для вложенных конвейеров:

Определить внутренний конвейер:

resp = client.ingest.put_pipeline(
    id="pipelineA",
    description="inner pipeline",
    processors=[
        {
            "set": {
                "field": "inner_pipeline_set",
                "value": "inner"
            }
        }
    ],
)
print(resp)
response = client.ingest.put_pipeline(
  id: 'pipelineA',
  body: {
    description: 'inner pipeline',
    processors: [
      {
        set: {
          field: 'inner_pipeline_set',
          value: 'inner'
        }
      }
    ]
  }
)
puts response
const response = await client.ingest.putPipeline({
  id: "pipelineA",
  description: "inner pipeline",
  processors: [
    {
      set: {
        field: "inner_pipeline_set",
        value: "inner",
      },
    },
  ],
});
console.log(response);
PUT _ingest/pipeline/pipelineA
{
  "description" : "inner pipeline",
  "processors" : [
    {
      "set" : {
        "field": "inner_pipeline_set",
        "value": "inner"
      }
    }
  ]
}

Определить другой конвейер, который использует предварительно определенный внутренний конвейер:

resp = client.ingest.put_pipeline(
    id="pipelineB",
    description="outer pipeline",
    processors=[
        {
            "pipeline": {
                "name": "pipelineA"
            }
        },
        {
            "set": {
                "field": "outer_pipeline_set",
                "value": "outer"
            }
        }
    ],
)
print(resp)
response = client.ingest.put_pipeline(
  id: 'pipelineB',
  body: {
    description: 'outer pipeline',
    processors: [
      {
        pipeline: {
          name: 'pipelineA'
        }
      },
      {
        set: {
          field: 'outer_pipeline_set',
          value: 'outer'
        }
      }
    ]
  }
)
puts response
const response = await client.ingest.putPipeline({
  id: "pipelineB",
  description: "outer pipeline",
  processors: [
    {
      pipeline: {
        name: "pipelineA",
      },
    },
    {
      set: {
        field: "outer_pipeline_set",
        value: "outer",
      },
    },
  ],
});
console.log(response);
PUT _ingest/pipeline/pipelineB
{
  "description" : "outer pipeline",
  "processors" : [
    {
      "pipeline" : {
        "name": "pipelineA"
      }
    },
    {
      "set" : {
        "field": "outer_pipeline_set",
        "value": "outer"
      }
    }
  ]
}

Теперь при индексировании документа с применением внешнего конвейера будет выполняться внутренний конвейер из внешнего конвейера:

resp = client.index(
    index="my-index-000001",
    id="1",
    pipeline="pipelineB",
    document={
        "field": "value"
    },
)
print(resp)
response = client.index(
  index: 'my-index-000001',
  id: 1,
  pipeline: 'pipelineB',
  body: {
    field: 'value'
  }
)
puts response
const response = await client.index({
  index: "my-index-000001",
  id: 1,
  pipeline: "pipelineB",
  document: {
    field: "value",
  },
});
console.log(response);
PUT /my-index-000001/_doc/1?pipeline=pipelineB
{
  "field": "value"
}

Ответ на запрос индексации:

{
  "_index": "my-index-000001",
  "_id": "1",
  "_version": 1,
  "result": "created",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 66,
  "_primary_term": 1
}

Индексированный документ:

{
  "field": "value",
  "inner_pipeline_set": "inner",
  "outer_pipeline_set": "outer"
}

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

Spec-Zone.ru

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