|
@@ -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.
|