【问题标题】:How to swap two elsticsearch indexes如何交换两个elasticsearch索引
【发布时间】:2022-11-27 10:20:11
【问题描述】:

我想为高负载的基于弹性搜索的搜索系统实施现金。我想将现金存储在特殊的弹性索引中。问题出在缓存预热中:我的系统每小时需要用新结果更新一次缓存结果。

所以,我正在创建一个新的空索引并用更新的结果填充它,然后我需要交换旧索引和新索引,以便用户可以使用新的缓存结果。

问题是:如何有效地交换两个弹性搜索索引

【问题讨论】:

    标签: python elasticsearch full-text-search


    【解决方案1】:

    对于这种情况,您可以使用称为“索引别名交换”的东西。

    您有一个指向当前索引的别名,用新记录填充一个新索引,然后将该别名指向新索引。

    是这样的:

    1. 当前索引名称是 items-2022-11-26-001
    2. 创建指向 items-2022-11-26-001 的别名项目
      POST _aliases
      {
        "actions": [
          {
            "add": {
              "index": "items-2022-11-26-001",
              "alias": "items"
            }
          }
        ]
      }
      
      1. 使用新数据项创建新索引-2022-11-26-002
      2. 完成后,现在将项目别名指向 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

      您针对将充当索引的“项目”别名运行所有查询。

      参考:

      https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-24
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多