elasticsearch
Loading

Pipeline processor

Executes another pipeline.

Name Required Default Description
name yes - The name of the pipeline to execute. Supports template snippets.
ignore_missing_pipeline no false Whether to ignore missing pipelines instead of failing.
description no - Description of the processor. Useful for describing the purpose of the processor or its configuration.
if no - Conditionally execute the processor. See Conditionally run a processor.
ignore_failure no false Ignore failures for the processor. See Handling pipeline failures.
on_failure no - Handle failures for the processor. See Handling pipeline failures.
tag no - Identifier for the processor. Useful for debugging and metrics.
 { "pipeline": { "name": "inner-pipeline" } } 

The name of the current pipeline can be accessed from the _ingest.pipeline ingest metadata key.

An example of using this processor for nesting pipelines would be:

Define an inner pipeline:

 PUT _ingest/pipeline/pipelineA { "description" : "inner pipeline", "processors" : [ { "set" : { "field": "inner_pipeline_set", "value": "inner" } } ] } 

Define another pipeline that uses the previously defined inner pipeline:

 PUT _ingest/pipeline/pipelineB { "description" : "outer pipeline", "processors" : [ { "pipeline" : { "name": "pipelineA" } }, { "set" : { "field": "outer_pipeline_set", "value": "outer" } } ] } 

Now indexing a document while applying the outer pipeline will see the inner pipeline executed from the outer pipeline:

 PUT /my-index-000001/_doc/1?pipeline=pipelineB { "field": "value" } 

Response from the index request:

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

Indexed document:

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