Browse Source

INGEST: Document Pipeline Processor (#33418)

* Added documentation for Pipeline Processor
* Relates #33188
Armin Braun 7 years ago
parent
commit
f79bdec58a
1 changed files with 114 additions and 0 deletions
  1. 114 0
      docs/reference/ingest/ingest-node.asciidoc

+ 114 - 0
docs/reference/ingest/ingest-node.asciidoc

@@ -2109,6 +2109,120 @@ Converts a string to its lowercase equivalent.
 --------------------------------------------------
 // NOTCONSOLE
 
+[[pipeline-processor]]
+=== Pipeline Processor
+Executes another pipeline.
+
+[[pipeline-options]]
+.Pipeline Options
+[options="header"]
+|======
+| Name             | Required  | Default  | Description
+| `name`           | yes       | -        | The name of the pipeline to execute
+|======
+
+[source,js]
+--------------------------------------------------
+{
+  "pipeline": {
+    "name": "inner-pipeline"
+  }
+}
+--------------------------------------------------
+// NOTCONSOLE
+
+An example of using this processor for nesting pipelines would be:
+
+Define an inner pipeline:
+
+[source,js]
+--------------------------------------------------
+PUT _ingest/pipeline/pipelineA
+{
+  "description" : "inner pipeline",
+  "processors" : [
+    {
+      "set" : {
+        "field": "inner_pipeline_set",
+        "value": "inner"
+      }
+    }
+  ]
+}
+--------------------------------------------------
+// CONSOLE
+
+Define another pipeline that uses the previously defined inner pipeline:
+
+[source,js]
+--------------------------------------------------
+PUT _ingest/pipeline/pipelineB
+{
+  "description" : "outer pipeline",
+  "processors" : [
+    {
+      "pipeline" : {
+        "name": "pipelineA"
+      }
+    },
+    {
+      "set" : {
+        "field": "outer_pipeline_set",
+        "value": "outer"
+      }
+    }
+  ]
+}
+--------------------------------------------------
+// CONSOLE
+// TEST[continued]
+
+Now indexing a document while applying the outer pipeline will see the inner pipeline executed
+from the outer pipeline:
+
+[source,js]
+--------------------------------------------------
+PUT /myindex/_doc/1?pipeline=pipelineB
+{
+  "field": "value"
+}
+--------------------------------------------------
+// CONSOLE
+// TEST[continued]
+
+Response from the index request:
+
+[source,js]
+--------------------------------------------------
+{
+  "_index": "myindex",
+  "_type": "_doc",
+  "_id": "1",
+  "_version": 1,
+  "result": "created",
+  "_shards": {
+    "total": 2,
+    "successful": 1,
+    "failed": 0
+  },
+  "_seq_no": 0,
+  "_primary_term": 1,
+}
+--------------------------------------------------
+// TESTRESPONSE
+
+Indexed document:
+
+[source,js]
+--------------------------------------------------
+{
+  "field": "value",
+  "inner_pipeline_set": "inner",
+  "outer_pipeline_set": "outer"
+}
+--------------------------------------------------
+// NOTCONSOLE
+
 [[remove-processor]]
 === Remove Processor
 Removes existing fields. If one field doesn't exist, an exception will be thrown.