【问题标题】:Reindex and alias - avoid duplicate search results重新索引和别名 - 避免重复的搜索结果
【发布时间】:2021-05-22 06:05:34
【问题描述】:

我正在使用一个别名进行搜索,其中一个索引为index_1is_write_index 设置为true。由于映射更改,我需要重新索引,这是我的索引过程。

  1. 使用新映射创建新索引index_2
  2. index_1 重新索引为index_2
  3. index_1 中使用的别名添加到index_2,并将is_write_index 设置为true 用于index_2
  4. index_1 重新索引到 index_2 以同步最新更改
  5. 删除index_1

我遇到的问题是,从第 3 步开始,对别名的查询返回重复的结果。如何避免这个问题?

【问题讨论】:

    标签: elasticsearch alias reindex


    【解决方案1】:

    找到了答案,我找到的短期解决方案是在设置别名时使用过滤器来过滤掉 index_2 中的重复结果。举个例子。

    POST /_aliases
    {
      "actions": [
        {
          "add": {
            "index": "index_1",
            "alias": "aliasName",
            "is_write_index": true
          }
        },
        {
          "add": {
            "index": "index_2",
            "alias": "aliasName",
            "filter": {
              "term": {
                "myGuaranteedToExistField": "impossibleToFindValue"
              }
            }
          }
        }
      ]
    }
    

    完成索引并验证事情后,我可以翻转索引。不确定这是否是最好的解决方案,但它确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-07
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 2021-01-01
      • 2011-04-04
      相关资源
      最近更新 更多