有效使用Elasticsearch Reindex API



我正在为Elastic搜索索引重新编制索引,以防发生任何更改。我可以找到两种方法来实现这一点,但除非我遗漏了什么,否则它们对我来说都是一样的。

我正在从服务B的Postgres向我的Elastic搜索服务获取数据,它有一个分页端点。

方法1:

  1. 创建别名,该别名将指向我们现有的索引
  2. 触发重新索引时,创建一个新索引,重新索引完成后,将指向旧索引的别名指向新创建的索引
  3. 删除旧索引

方法2:

  1. 创建一个新索引
  2. 使用reindex API将数据从旧索引复制到新索引,这将对旧文档应用新更改

对我来说,这两者看起来都一样。使用方法2的缺点似乎是它将创建一个新的索引名称,因此我们必须在查询时更改索引名称。

此外,考虑到我的重新索引操作不会是一项频繁的任务,我正在从分页端点读取数据,然后再次创建索引,方法1对我来说似乎更有意义

在方法1中,您使用的是别名。在方法2中,您不使用别名。

如果将别名添加到approach2中作为步骤3和步骤4,则两者都是相同的——删除旧索引。

参考因为你不需要经常做什么。

最新更新