从 python 中的 ElasticSearch 索引中删除文档



使用 elasticsearch-py,我想从特定索引中删除所有文档,而不删除索引。鉴于delete_by_query被移动到一个单独的插件,我想知道最好的方法是什么?

通过查询删除来删除所有文档效率非常低。更直接、更正确的行动是:

  • 获取当前映射(假设您没有使用索引模板)
  • 将索引删除 DELETE /indexname
  • 创建新索引和映射。

这将需要一秒钟,前者将花费更多的时间和不必要的磁盘I/O

使用滚动/扫描 API 调用收集所有文档 ID,然后对这些 ID 调用批量删除。这是基于官方文档的按查询删除 API 的建议替代。

编辑:请求的信息,特别是在 elasticsearch-py 中使用它。以下是帮助程序的文档。使用扫描帮助程序扫描所有文档。将批量帮助程序与删除操作结合使用以删除所有 ID。

相关内容

  • 没有找到相关文章

最新更新