123456789101112131415161718192021222324252627282930313233343536373839 |
- [[csv-processor]]
- === CSV processor
- ++++
- <titleabbrev>CSV</titleabbrev>
- ++++
- Extracts fields from CSV line out of a single text field within a document. Any empty field in CSV will be skipped.
- [[csv-options]]
- .CSV Options
- [options="header"]
- |======
- | Name | Required | Default | Description
- | `field` | yes | - | The field to extract data from
- | `target_fields` | yes | - | The array of fields to assign extracted values to
- | `separator` | no | , | Separator used in CSV, has to be single character string
- | `quote` | no | " | Quote used in CSV, has to be single character string
- | `ignore_missing` | no | `true` | If `true` and `field` does not exist, the processor quietly exits without modifying the document
- | `trim` | no | `false` | Trim whitespaces in unquoted fields
- | `empty_value` | no | - | Value used to fill empty fields, empty fields will be skipped if this is not provided.
- Empty field is one with no value (2 consecutive separators) or empty quotes (`""`)
- include::common-options.asciidoc[]
- |======
- [source,js]
- --------------------------------------------------
- {
- "csv": {
- "field": "my_field",
- "target_fields": ["field1", "field2"]
- }
- }
- --------------------------------------------------
- // NOTCONSOLE
- If the `trim` option is enabled then any whitespace in the beginning and in the end of each unquoted field will be trimmed.
- For example with configuration above, a value of `A, B` will result in field `field2`
- having value `{nbsp}B` (with space at the beginning). If `trim` is enabled `A, B` will result in field `field2`
- having value `B` (no whitespace). Quoted fields will be left untouched.
|