如何解决Elasticseach使用NEST将索引替换为新索引,但别名相同
谁能告诉我们创建新索引来替换现有索引但具有相同别名的最佳方法是什么。
假设我们有一个名为 properties-2019 的现有索引,别名为 properties 。
我们想用名为 properties-2020但具有相同别名的新索引来代替它。
我们是否必须:
1-创建新的索引属性-2020
是否有一种有效的方法来做到这一点。 谢谢
解决方法
基本上是。
首先_reindex
数据,然后重命名别名。
重新索引-映射,设置和数据
POST _reindex?wait_for_completion=false
{
"source": {
"index": "properties-2019"
},"dest": {
"index": "properties-2020"
}
}
重命名别名
POST /_aliases
{
"actions" : [
{ "remove" : { "index" : "properties-2019","alias" : "properties" } },{ "add" : { "index" : "properties-2020","alias" : "properties" } }
]
}
删除旧索引
DELETE properties-2019
使用NEST -代码未经测试
重新索引
var reindexResponse = client.ReindexOnServer(r => r
.Source(s => s.Index("properties-2019"))
.Destination(d => d.Index("properties-2020"))
.WaitForCompletion(false)
);
更新别名
var aliasRes = client.Alias(al => al
.Add(add => add.Alias("properties").Index("properties-2020"))
.Remove(remove => remove.Alias("properties").Index("properties-2019"))
);
删除旧索引
client.Indices.Delete("properties-2019");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。