Elasticsearch:按查询删除在很多要删除的文档上确实很慢

ar0*_*968 5 elasticsearch

我正在使用按查询插件删除进行弹性搜索。

我有一个products带有整数字段的索引size。我想删除大小为 10 的所有文档。我有超过 5000 个大小为 10 的文档。如果我尝试:

DELETE /products/product/_query?q=size:10
Run Code Online (Sandbox Code Playgroud)

此查询需要超过 2 分钟。

delete by query文档中了解到,因为插件很慢:

在内部,它使用 Scroll 和 Bulk API 以高效且安全的方式删除文档。它更慢[..] 匹配大量文档的查询可能会运行很长时间,因为每个文档都必须单独删除。

如何执行最快的文档批量删除?

bit*_*kar 5

你不能。这是最新版本的 Elasticsearch 中唯一支持的删除文档的方式。Elasticsearch 1.x 的删除速度要快得多(但可能以不安全的方式)。因此,如果它真的值那么多钱,你可以回到旧版本的 Elasticsearch。