OpenSearch/server
Julie Tibshirani ab65a57d70
Merge mappings for composable index templates (#58709)
This PR implements recursive mapping merging for composable index templates.

When creating an index, we perform the following:
* Add each component template mapping in order, merging each one in after the
last.
* Merge in the index template mappings (if present).
* Merge in the mappings on the index request itself (if present).

Some principles:
* All 'structural' changes are disallowed (but everything else is fine). An
object mapper can never be changed between `type: object` and `type: nested`. A
field mapper can never be changed to an object mapper, and vice versa.
* Generally, each section is merged recursively. This includes `object`
mappings, as well as root options like `dynamic_templates` and `meta`. Once we
reach 'leaf components' like field definitions, they always overwrite an
existing one instead of being merged.

Relates to #53101.
2020-06-30 08:01:37 -07:00
..
licenses Upgrade to JNA 5.5.0 (#58183) 2020-06-17 07:35:08 -04:00
src Merge mappings for composable index templates (#58709) 2020-06-30 08:01:37 -07:00
build.gradle Replace compile configuration usage with api (7.x backport) (#58721) 2020-06-30 15:57:41 +02:00