如何通过JavaAPI从ElasticSearch中删除数据

时间:2016-12-27 15:47:36

标签: elasticsearch elasticsearch-java-api

EDITED 我试图找出如何根据标准从Elasticsearch中删除数据。我知道旧版本的ElasticSearch具有“按查询删除”功能,但它确实存在严重的性能问题,所以它已被删除。我也知道有一个Java插件可供查询删除:

org.elasticsearch.plugin:删除逐查询:2.2.0

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

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

有没有人有想法(在电话中删除的文件数量会很大,超过5万份文件。

提前致谢!

最后使用了此guy's third option

1 个答案:

答案 0 :(得分:1)

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

  1. 开始新的滚动/扫描
  2. 获取下一个N条记录
  3. 从每条记录中获取ID并执行这些ID的BulkDelete
  4. 返回第2步
  5. 因此,您不会完全使用滚动/扫描删除,只需将其用作工具即可获取要删除的记录的所有ID。通过这种方式,您一次只能删除N条记录而不是所有50,000条记录(这会导致各种问题)。