python 如何交换两个elsticsearch索引

pod7payv  于 2022-11-28  发布在  Python
关注(0)|答案(1)|浏览(144)

我想为高负载的基于ElasticSearch的搜索系统实现cash.我想把cash存储在特殊的弹性索引中.问题是在缓存预热中:我的系统每小时需要用最新的结果更新缓存的结果。
因此,我创建了一个新的空索引,并用更新的结果填充它,然后我需要交换旧索引和新索引,这样用户就可以使用新的缓存结果。
问题是:如何有效地交换两个ElasticSearch索引

s6fujrry

s6fujrry1#

对于这种情况,您可以使用称为“索引别名交换”的方法。
您有一个指向当前索引的别名,用新记录填充新索引,然后将此别名指向新索引。
大概是这样的:
1.当前指标名称为项次-2022 -11 -26-001
1.创建指向物料的别名物料-2022 -11 -26-001

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "items-2022-11-26-001",
        "alias": "items"
      }
    }
  ]
}

1.使用新鲜数据项创建新索引-2022-11-26-002
1.完成后,现在将项目别名指向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

相关问题