在不影响数据丢失和搜索的情况下重新索引elasticsearch数据

时间:2019-11-14 16:43:34

标签: elasticsearch

问题陈述:我想将数据从一个索引导入到另一个索引,而又不影响数据丢失和影响从Web进行的搜索。

已采取方法

我有一个索引 development_users_en_gb ,并且想将数据导入到 development_users_en_gb_v1

  1. development_users_en_gb 索引具有一个development_users_en_gb_read和development_users_en_gb_write别名
{
  "development_users_en_gb" : {
    "aliases" : {
      "development_users_en_gb_read" : { },
      "development_users_en_gb_write" : { }
    }
  }
}

enter image description here

  1. 创建了新索引 development_users_en_gb_v1
  2. 更新了写别名(development_users_en_gb_write)以指向新的索引名称 development_users_en_gb_v1
POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "development_users_en_gb", "alias" : "development_users_en_gb_write" } },
        { "add" : { "index" : "development_users_en_gb_v1", "alias" : "development_users_en_gb_write" } }
    ]
}
curl -XGET "http://localhost:9200/development_users_en_gb/_alias"
{
  "development_users_en_gb" : {
    "aliases" : {
      "development_users_en_gb_read" : { }
    }
  }
}
curl -XGET "http://localhost:9200/development_users_en_gb_v1/_alias"
{
  "development_users_en_gb_v1" : {
    "aliases" : {
      "development_users_en_gb_write" : { }
    }
  }
}

development_users_en_gb_read别名指向development_users_en_gb索引(旧索引),development_users_en_gb_write指向development_users_en_gb_v1(新索引)

enter image description here 4.查询数据库,并通过development_users_en_gb_write别名对所有文档建立索引 此时,有一个从Web创建的新文档,但是它从未到达development_users_en_gb_v1(新索引)。 development_users_en_gb中的文档数大于development_users_en_gb_v1

问题:为什么我看不到数据被推送到development_users_en_gb_v1(新索引),而不是推送到development_users_en_gb(旧索引)

0 个答案:

没有答案