2

使用elasticsearch-py,我想从特定索引中删除所有文档,而不删除索引。鉴于已将delete_by_query其移至单独的插件,我想知道解决此问题的最佳方法是什么?

4

2 回答 2

2

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

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

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

于 2016-02-21T17:42:03.693 回答
0

使用滚动/扫描 API 调用来收集所有文档 ID,然后对这些 ID 调用批量删除。这是根据官方文档推荐的 Delete By Query API 替换。

编辑:要求在 elasticsearch-py 中专门使用它的信息。这是helpers的文档。使用扫描助手扫描所有文档。使用带有 delete 操作的 Bulk 助手来删除所有 id。

于 2016-02-18T16:50:31.473 回答