mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-24 23:27:25 -04:00
Currently, existing runtime fields can be updated, but they cannot be removed. That allows to correct potential mistakes, but once a runtime field is added to the index mappings, it is not possible to remove it. With this commit we introduce the ability to remove an existing runtime field by providing a null value for it through the put mapping API. If a field with such name does not exist, such specific instruction will have no effect on other existing runtime fields. Note that the removal of runtime fields makes the recently introduced assertRefreshItNotNeeded assertion trip, because when each local node merges mappings back in, the runtime fields that were previously removed by the master node, get added back again locally. This is only a problem for the assertion that verifies that the removed refresh operation is never needed. We worked around this by tweaking the assertion to ignore runtime fields completely, for simplicity, by assertion on the serialized merged mappings and incoming mappings without the corresponding runtime section. Co-authored-by: Adam Locke <adam.locke@elastic.co> |
||
---|---|---|
.. | ||
dynamic | ||
fields | ||
params | ||
types | ||
dynamic-mapping.asciidoc | ||
explicit-mapping.asciidoc | ||
fields.asciidoc | ||
mapping-settings-limit.asciidoc | ||
params.asciidoc | ||
removal_of_types.asciidoc | ||
runtime.asciidoc | ||
types.asciidoc |