46 lines
1.7 KiB
Plaintext
46 lines
1.7 KiB
Plaintext
[[split-processor]]
|
|
=== Split Processor
|
|
Splits a field into an array using a separator character. Only works on string fields.
|
|
|
|
[[split-options]]
|
|
.Split Options
|
|
[options="header"]
|
|
|======
|
|
| Name | Required | Default | Description
|
|
| `field` | yes | - | The field to split
|
|
| `separator` | yes | - | A regex which matches the separator, eg `,` or `\s+`
|
|
| `target_field` | no | `field` | The field to assign the split value to, by default `field` is updated in-place
|
|
| `ignore_missing` | no | `false` | If `true` and `field` does not exist, the processor quietly exits without modifying the document
|
|
| `preserve_trailing`| no | `false` | Preserves empty trailing fields, if any.
|
|
include::common-options.asciidoc[]
|
|
|======
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
{
|
|
"split": {
|
|
"field": "my_field",
|
|
"separator": "\\s+" <1>
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// NOTCONSOLE
|
|
<1> Treat all consecutive whitespace characters as a single separator
|
|
|
|
If the `preserve_trailing` option is enabled, any trailing empty fields in the input will be preserved. For example,
|
|
in the configuration below, a value of `A,,B,,` in the `my_field` property will be split into an array of five elements
|
|
`["A", "", "B", "", ""]` with two empty trailing fields. If the `preserve_trailing` property were not enabled, the two
|
|
empty trailing fields would be discarded resulting in the three-element array `["A", "", "B"]`.
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
{
|
|
"split": {
|
|
"field": "my_field",
|
|
"separator": ",",
|
|
"preserve_trailing": true
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// NOTCONSOLE
|