Back to Elasticsearch

Pipeline processor [pipeline-processor]

docs/reference/enrich-processor/pipeline-processor.md

9.4.02.8 KB
Original Source

Pipeline processor [pipeline-processor]

Executes another pipeline.

$$$pipeline-options$$$

NameRequiredDefaultDescription
nameyes-The name of the pipeline to execute. Supports template snippets.
ignore_missing_pipelinenofalseWhether to ignore missing pipelines instead of failing.
descriptionno-Description of the processor. Useful for describing the purpose of the processor or its configuration.
ifno-Conditionally execute the processor. See Conditionally run a processor.
ignore_failurenofalseIgnore failures for the processor. See Handling pipeline failures.
on_failureno-Handle failures for the processor. See Handling pipeline failures.
tagno-Identifier for the processor. Useful for debugging and metrics.
js
{
  "pipeline": {
    "name": "inner-pipeline"
  }
}

% NOTCONSOLE

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:

console
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:

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

% TEST[continued]

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

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

% TEST[continued]

Response from the index request:

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

% TESTRESPONSE[s/"_seq_no": \d+/"_seq_no" : $body._seq_no/ s/"_primary_term" : 1/"_primary_term" : $body._primary_term/]

Indexed document:

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

% NOTCONSOLE