Skip to content

Ingest: Lowercase/uppercase processor: Support arrays #51087

Closed
@fkelbert

Description

@fkelbert

Elastic Cloud 7.5

The lowercase/uppercase ingest processors (and possibly others) do currently not allow to process a field containing an array of values. Given the fact that many aspects in Elasticsearch do not make a difference between single-value fields and array-valued fields, this is a behaviour that I would have expected.

Note that this is different from #51048.

Current workaround: use foreach processor.

POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "processors": [
      {
        "lowercase": {
          "field": "test"
        }
      }
    ]
  },
  "docs": [
    {
      "_source": {
        "test": [ "FOO", "BAR" ]
      }
    }
    ]
}

Result:

{
  "docs" : [
    {
      "error" : {
        "root_cause" : [
          {
            "type" : "ingest_processor_exception",
            "reason" : "java.lang.IllegalArgumentException: field [test] of type [java.util.ArrayList] cannot be cast to [java.lang.String]"
          }
        ],
        "type" : "illegal_argument_exception",
        "reason" : "field [test] of type [java.util.ArrayList] cannot be cast to [java.lang.String]"
      }
    }
  ]
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions