介绍
介绍
福哥在使用Elasticsearch的时候需要删除匹配指定条件的查询结果的文档,找了半天终于让福哥解决了
现在就分享给大家
教程
delete_by_query
通过delete_by_query关键字将查询结果文档全部删除掉(慎用!!!)
示例:查出所有age小于21的全部文档将其删除掉
curl -X POST -H 'Content-Type: application/json' -d '{"query":{"bool":{"must":{"range":{"age":{"lt":21}}}}}}' 'http://localhost:9200/user/_delete_by_query'
结果:
{ "took": 0, "timed_out": false, "total": 0, "deleted": 0, "batches": 0, "version_conflicts": 0, "noops": 0, "retries": { "bulk": 0, "search": 0 }, "throttled_millis": 0, "requests_per_second": -1.0, "throttled_until_millis": 0, "failures": [] }
总结
这个命令太过暴力!!
保险起见,我们还是先用 _search 查一下,确定了结果集是需要删除的,再换成 _delete_by_query 删除掉比较好~~