Процессор конвейера
Выполняет другой конвейер.
Таблица 34. Параметры конвейера
| Имя | Требуется | По умолчанию | Описание |
|---|---|---|---|
| да | - | Имя конвейера для выполнения. Поддерживает фрагменты шаблонов. |
| нет | false | Игнорировать отсутствующие конвейеры вместо сбоя. |
| нет | - | Описание процессора. Полезно для описания назначения процессора или его конфигурации. |
| нет | - | Условно выполнить процессор. См. Условное выполнение процессора. |
| нет |
| Игнорировать ошибки процессора. См. Обработка ошибок конвейера. |
| нет | - | Обрабатывать ошибки для процессора. См. Обработка ошибок конвейера. |
| нет | - | Идентификатор процессора. Полезен для отладки и метрик. |
{
"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