0

已编辑我正在尝试找出如何根据条件从 Elasticsearch 中删除数据。我知道旧版本的 ElasticSearch 具有按查询删除功能,但它有非常严重的性能问题,所以它被删除了。我也知道有一个通过查询删除的Java插件:

org.elasticsearch.plugin:delete-by-query:2.2.0

但我不知道它是否有更好的删除实现,它具有更好的性能,或者它与旧的相同。

另外,有人建议使用滚动删除数据,但我知道如何检索数据滚动,而不是如何使用滚动删除!

有谁知道(在通话中要删除的文件数量会很大,超过 50k 个文件。

提前致谢!

终于用了这家伙的第三个选项

4

1 回答 1

1

您想使用滚动/扫描是正确的。以下是步骤:

  1. 开始新的滚动/扫描
  2. 获取下 N 条记录
  3. 从每条记录中获取 ID 并对这些 ID 执行 BulkDelete
  4. 返回第 2 步

因此,您不会使用滚动/扫描完全删除,您只需将其用作获取要删除记录的所有 ID 的工具。这样,您一次只删除 N 条记录,而不是 1 块中的全部 50,000 条记录(这会导致您出现各种问题)。

于 2016-12-28T04:06:11.550 回答