Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用elasticsearch-py,我想从特定索引中删除所有文档,而不删除索引。鉴于已将delete_by_query其移至单独的插件,我想知道解决此问题的最佳方法是什么?
delete_by_query
通过查询删除来删除所有文档的效率非常低。更直接、更正确的做法是:
DELETE /indexname
这将需要一秒钟,前者将花费更多时间和不必要的磁盘 I/O
使用滚动/扫描 API 调用来收集所有文档 ID,然后对这些 ID 调用批量删除。这是根据官方文档推荐的 Delete By Query API 替换。
编辑:要求在 elasticsearch-py 中专门使用它的信息。这是helpers的文档。使用扫描助手扫描所有文档。使用带有 delete 操作的 Bulk 助手来删除所有 id。