Set processor
editSet processor
editSets one field and associates it with the specified value. If the field already exists, its value will be replaced with the provided one.
Table 41. Set Options
Name | Required | Default | Description |
---|---|---|---|
|
yes |
- |
The field to insert, upsert, or update. Supports template snippets. |
|
yes* |
- |
The value to be set for the field. Supports template snippets. May specify only one of |
|
no |
- |
The origin field which will be copied to |
|
no |
|
If |
|
no |
|
If |
|
no |
|
The media type for encoding |
|
no |
- |
Description of the processor. Useful for describing the purpose of the processor or its configuration. |
|
no |
- |
Conditionally execute the processor. See Conditionally run a processor. |
|
no |
|
Ignore failures for the processor. See Handling pipeline failures. |
|
no |
- |
Handle failures for the processor. See Handling pipeline failures. |
|
no |
- |
Identifier for the processor. Useful for debugging and metrics. |
{ "description" : "sets the value of count to 1", "set": { "field": "count", "value": 1 } }
This processor can also be used to copy data from one field to another. For example:
resp = client.ingest.put_pipeline( id="set_os", description="sets the value of host.os.name from the field os", processors=[ { "set": { "field": "host.os.name", "value": "{{{os}}}" } } ], ) print(resp) resp1 = client.ingest.simulate( id="set_os", docs=[ { "_source": { "os": "Ubuntu" } } ], ) print(resp1)
response = client.ingest.put_pipeline( id: 'set_os', body: { description: 'sets the value of host.os.name from the field os', processors: [ { set: { field: 'host.os.name', value: '{{{os}}}' } } ] } ) puts response response = client.ingest.simulate( id: 'set_os', body: { docs: [ { _source: { os: 'Ubuntu' } } ] } ) puts response
const response = await client.ingest.putPipeline({ id: "set_os", description: "sets the value of host.os.name from the field os", processors: [ { set: { field: "host.os.name", value: "{{{os}}}", }, }, ], }); console.log(response); const response1 = await client.ingest.simulate({ id: "set_os", docs: [ { _source: { os: "Ubuntu", }, }, ], }); console.log(response1);
PUT _ingest/pipeline/set_os { "description": "sets the value of host.os.name from the field os", "processors": [ { "set": { "field": "host.os.name", "value": "{{{os}}}" } } ] } POST _ingest/pipeline/set_os/_simulate { "docs": [ { "_source": { "os": "Ubuntu" } } ] }
Result:
{ "docs" : [ { "doc" : { "_index" : "_index", "_id" : "_id", "_version" : "-3", "_source" : { "host" : { "os" : { "name" : "Ubuntu" } }, "os" : "Ubuntu" }, "_ingest" : { "timestamp" : "2019-03-11T21:54:37.909224Z" } } } ] }
This processor can also access array fields using dot notation:
resp = client.ingest.simulate( pipeline={ "processors": [ { "set": { "field": "my_field", "value": "{{{input_field.1}}}" } } ] }, docs=[ { "_index": "index", "_id": "id", "_source": { "input_field": [ "Ubuntu", "Windows", "Ventura" ] } } ], ) print(resp)
response = client.ingest.simulate( body: { pipeline: { processors: [ { set: { field: 'my_field', value: '{{{input_field.1}}}' } } ] }, docs: [ { _index: 'index', _id: 'id', _source: { input_field: [ 'Ubuntu', 'Windows', 'Ventura' ] } } ] } ) puts response
const response = await client.ingest.simulate({ pipeline: { processors: [ { set: { field: "my_field", value: "{{{input_field.1}}}", }, }, ], }, docs: [ { _index: "index", _id: "id", _source: { input_field: ["Ubuntu", "Windows", "Ventura"], }, }, ], }); console.log(response);
POST /_ingest/pipeline/_simulate { "pipeline": { "processors": [ { "set": { "field": "my_field", "value": "{{{input_field.1}}}" } } ] }, "docs": [ { "_index": "index", "_id": "id", "_source": { "input_field": [ "Ubuntu", "Windows", "Ventura" ] } } ] }
Result:
{ "docs": [ { "doc": { "_index": "index", "_id": "id", "_version": "-3", "_source": { "input_field": [ "Ubuntu", "Windows", "Ventura" ], "my_field": "Windows" }, "_ingest": { "timestamp": "2023-05-05T16:04:16.456475214Z" } } } ] }
The contents of a field including complex values such as arrays and objects can be copied to another field using copy_from
:
resp = client.ingest.put_pipeline( id="set_bar", description="sets the value of bar from the field foo", processors=[ { "set": { "field": "bar", "copy_from": "foo" } } ], ) print(resp) resp1 = client.ingest.simulate( id="set_bar", docs=[ { "_source": { "foo": [ "foo1", "foo2" ] } } ], ) print(resp1)
response = client.ingest.put_pipeline( id: 'set_bar', body: { description: 'sets the value of bar from the field foo', processors: [ { set: { field: 'bar', copy_from: 'foo' } } ] } ) puts response response = client.ingest.simulate( id: 'set_bar', body: { docs: [ { _source: { foo: [ 'foo1', 'foo2' ] } } ] } ) puts response
const response = await client.ingest.putPipeline({ id: "set_bar", description: "sets the value of bar from the field foo", processors: [ { set: { field: "bar", copy_from: "foo", }, }, ], }); console.log(response); const response1 = await client.ingest.simulate({ id: "set_bar", docs: [ { _source: { foo: ["foo1", "foo2"], }, }, ], }); console.log(response1);
PUT _ingest/pipeline/set_bar { "description": "sets the value of bar from the field foo", "processors": [ { "set": { "field": "bar", "copy_from": "foo" } } ] } POST _ingest/pipeline/set_bar/_simulate { "docs": [ { "_source": { "foo": ["foo1", "foo2"] } } ] }
Result:
{ "docs" : [ { "doc" : { "_index" : "_index", "_id" : "_id", "_version" : "-3", "_source" : { "bar": ["foo1", "foo2"], "foo": ["foo1", "foo2"] }, "_ingest" : { "timestamp" : "2020-09-30T12:55:17.742795Z" } } } ] }