opensearch-project / OpenSearch

🔎 Open source distributed and RESTful search engine.
https://opensearch.org/docs/latest/opensearch/index/
Apache License 2.0
9.84k stars 1.83k forks source link

Add a multivalued property to field mappings (#16420) #16601

Open normanj-bitquill opened 1 week ago

normanj-bitquill commented 1 week ago

Description

A mapping for a field can now contain a property multivalued. multivalued must have a boolean value. It can only be applied to field types that support multiple values.

If the multivalued property has never been set for a field, then it is assumed to be false and will not be returned in the index mapping.

If multivalued is set to false, then there is not change in behaviour except for including multivalued in the index mapping.

If multivalued is set to true, then it is returned in the index mapping. In addition, any new documents inserted must have an array value for the field with multivalued set to true.

The multivalued property is intended to be useful to services that consume index mappings. It indicates that the field will should only contain array values. As an example, the SQL plugin can this to decide on how to process an aggregate operation such as MIN or MAX.

An example mapping that uses multivalued:

{
  "test_integer": {
    "mappings": {
      "properties": {
        "x": {
          "type": "long"
        },
        "y": {
          "type": "integer",
          "multivalued": true
        }
      }
    }
  }
}

Related Issues

Resolves #16420 Relates to: SQL #3137 Relates to: SQL #3138

Check List

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. For more information on following Developer Certificate of Origin and signing off your commits, please check here.

github-actions[bot] commented 1 week ago

:x: Gradle check result for 70d010098b496f0044ed383afd553f611b30fb40: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

github-actions[bot] commented 1 week ago

:x: Gradle check result for fbc6855ab7f5245c5401e48dc7500ea90a512359: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?