福哥在使用Elasticsearch的时候需要删除匹配指定条件的查询结果的文档,找了半天终于让福哥解决了
现在就分享给大家
通过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 删除掉比较好~~