有时候,我需要更新映射,设置或将默认管道绑定到活跃使用的索引。
暂时,我正在使用 数据丢失的方法,如下所示:
index.default_pipeline
绑定默认管道)更新索引模板; a_new_index
(与template index_patterns
匹配); index_to_fix
到a_new_index
迁移已建立索引的数据; a_new_index
(别名将与index_to_fix
相同,以确保索引不受干扰)并删除index_to_fix
; 但是在第3步和第4步之间有一个时间间隔,在此间隔期间,新索引的数据会丢失在原始index_to_fix
中。
有没有一种方法可以更新正在使用的索引的配置,而不会丢失任何数据?
答案 0 :(得分:0)
经过一些讨论,感谢@LeBigCat的帮助。我认为这个问题可以通过三个步骤来解决。
首先,不要直接使用索引,请尽可能使用别名;由于您不能使用与现有索引同名的别名,因此即使索引已损坏(设计不良),也无法直接替换该索引。最简单的方法是使用模板并将索引名称直接包含在别名中。
<style>
.fb_dialog {
left: 18pt;
};
iframe.fb_customer_chat_bounce_in_v2{
left:36pt!important;
}
iframe.fb_customer_chat_bounce_out_v2{
left:36pt!important;
}
</style>
由于PUT _template/test
{
...
"aliases" : {
"{index}-alias" : {}
}
}
被积极使用,因此在更新模板并创建新索引index_to_fix
之后,我们可以使用别名将索引重定向到{{1} }。
a_new_fix
只需使用a_new_fix
将所有数据从POST /_aliases
{
"actions" : [
{ "add": { "index": "a_new_index", "alias": "index_to_fix-alias" } },
{ "remove": { "index": "index_to_fix", "alias": "index_to_fix-alias" } }
]
}
迁移到_reindex
。
index_to_fix