有效使用 Elasticsearch Reindex API
Use Elasticsearch Reindex API effectively
我正在处理重新索引我的 Elastic 搜索索引的任务,以防发生任何更改。我可以找到 2 种方法来实现这个,但它们对我来说看起来是一样的,除非我遗漏了什么。
我正在从服务 B 的 Postgres 获取数据到我的 Elastic 搜索服务,它有一个分页端点。
方法一:
- 创建指向我们现有索引的别名。
- 触发重新索引时,创建一个新索引,重新索引完成后,将指向旧索引的别名指向新创建的索引。
- 删除旧索引。
方法二:
- 创建新索引。
- 使用 reindex API 将数据从旧索引复制到新索引,这会将新更改应用到旧文档。
对我来说,这两个看起来都一样。使用方法2的缺点似乎是它会创建一个新的索引名称,因此我们必须在查询时更改索引名称。
此外,考虑到我的重建索引操作不会是一项频繁的任务,我正在从分页端点读取数据,然后再次创建索引,方法 1 对我来说似乎更有意义。
在方法 1 中,您使用的是别名。在方法 2 中,您没有使用别名。
如果您将别名添加到 approach2 作为 step3 和 step4 - 删除旧索引,两者将相同。
Refer因为你需要做的很少。
我正在处理重新索引我的 Elastic 搜索索引的任务,以防发生任何更改。我可以找到 2 种方法来实现这个,但它们对我来说看起来是一样的,除非我遗漏了什么。
我正在从服务 B 的 Postgres 获取数据到我的 Elastic 搜索服务,它有一个分页端点。
方法一:
- 创建指向我们现有索引的别名。
- 触发重新索引时,创建一个新索引,重新索引完成后,将指向旧索引的别名指向新创建的索引。
- 删除旧索引。
方法二:
- 创建新索引。
- 使用 reindex API 将数据从旧索引复制到新索引,这会将新更改应用到旧文档。
对我来说,这两个看起来都一样。使用方法2的缺点似乎是它会创建一个新的索引名称,因此我们必须在查询时更改索引名称。
此外,考虑到我的重建索引操作不会是一项频繁的任务,我正在从分页端点读取数据,然后再次创建索引,方法 1 对我来说似乎更有意义。
在方法 1 中,您使用的是别名。在方法 2 中,您没有使用别名。
如果您将别名添加到 approach2 作为 step3 和 step4 - 删除旧索引,两者将相同。
Refer因为你需要做的很少。