在没有定义别名之前重新编制索引

时间:2016-04-19 08:40:23

标签: elasticsearch

每当有人描述Elasticsearch重新索引过程时,就会假定通过别名访问索引。然后通过改变所述别名来完成从一个索引到另一个索引的实际转换。但是,我的应用程序不访问别名,而是访问实际索引。最重要的是,我无法更改应用程序正在访问的索引名称。是否可以使用具有旧索引名称的别名从旧索引转换为新索引,因此应用程序不必知道任何内容已更改?

1 个答案:

答案 0 :(得分:1)

您将面临的一个问题是,您不能创建与现有索引同名的别名(反之亦然)。

因此,如果您无法更改应用的内容并且当前正在直接触及索引A,则无法使用别名A创建另一个索引B.

唯一的方法是:

  1. 将索引A复制/重新索引到新索引B
  2. 删除索引第一个
  3. 然后立即将别名A添加到索引B上(但在2到3之间的几秒钟内,您的应用程序将无法点击任何内容)
  4. 但是,第一次这样做只会是一个问题。下一次,您将能够原子地将别名从索引B(旧)切换到索引C(新),并且您的应用程序不会感觉到什么。