When creating index templates, we can use order
to override elements of one template with another; it doesn't seem able to handle the case where a lower-order template has specified an alias, but in the higher-order template I want to specify a different one - and have new indices not added to the alias already given in the lower order template.
For example, where I want to reindex some data in my-index-*
as e.g. my-index-testcase-xxxx
, keeping the same mappings (or only augmenting, changing settings etc) from the my-index
template (requiring the index names to match the lower-order template pattern) but keeping the results out of the usual alias. I always end up creating the new indices as e.g. testcase-my-index-*
and a completely separate template, risking divergence, which seems like it should be avoidable.
Aliases are given in a template as ... alias-name: {}
but the natural thought of overriding by giving ... alias-name: null, other-alias-name: {}
gives the error:
"type": "illegal_argument_exception",
"reason": "No alias is specified"
Perhaps alias removal could be implemented using a null
there, if it has no reasonable other meaning?