我想为高负载的基于ElasticSearch的搜索系统实现cash.我想把cash存储在特殊的弹性索引中.问题是在缓存预热中:我的系统每小时需要用最新的结果更新缓存的结果。因此,我创建了一个新的空索引,并用更新的结果填充它,然后我需要交换旧索引和新索引,这样用户就可以使用新的缓存结果。问题是:如何有效地交换两个ElasticSearch索引?
s6fujrry1#
对于这种情况,您可以使用称为“索引别名交换”的方法。您有一个指向当前索引的别名,用新记录填充新索引,然后将此别名指向新索引。大概是这样的:1.当前指标名称为项次-2022 -11 -26-0011.创建指向物料的别名物料-2022 -11 -26-001
POST _aliases { "actions": [ { "add": { "index": "items-2022-11-26-001", "alias": "items" } } ] }
1.使用新鲜数据项创建新索引-2022-11-26-0021.完成后,现在将项目别名指向items-2022-11-26-002
POST _aliases { "actions": [ { "remove": { "index": "items-2022-11-26-001", "alias": "items" } }, { "add": { "index": "items-2022-11-26-002", "alias": "items" } } ] }
1.删除项目-2022 -11 -26 -001您对将充当索引的“items”别名运行所有查询。参考文献:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
1条答案
按热度按时间s6fujrry1#
对于这种情况,您可以使用称为“索引别名交换”的方法。
您有一个指向当前索引的别名,用新记录填充新索引,然后将此别名指向新索引。
大概是这样的:
1.当前指标名称为项次-2022 -11 -26-001
1.创建指向物料的别名物料-2022 -11 -26-001
1.使用新鲜数据项创建新索引-2022-11-26-002
1.完成后,现在将项目别名指向items-2022-11-26-002
1.删除项目-2022 -11 -26 -001
您对将充当索引的“items”别名运行所有查询。
参考文献:
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html