Each processor allows for an optional if
condition to determine if that
processor should be executed or skipped. The value of the if
is a
Painless script that needs to evaluate
to true
or false
.
For example the following processor will drop the document
(i.e. not index it) if the input document has a field named network_name
and it is equal to Guest
.
PUT _ingest/pipeline/drop_guests_network { "processors": [ { "drop": { "if": "ctx.network_name == 'Guest'" } } ] }
Using that pipeline for an index request:
POST test/_doc/1?pipeline=drop_guests_network { "network_name" : "Guest" }
Results in nothing indexed since the conditional evaluated to true
.
{ "_index": "test", "_type": "_doc", "_id": "1", "_version": -3, "result": "noop", "_shards": { "total": 0, "successful": 0, "failed": 0 } }