delete_by_query
delete_by_query方法会删除符合条件的记录,示例如下:
POST twitter/(doc_type, 5.x)/_delete_by_query
{
"query": {
"match": {
"message": "some message"
}
}
}
查询语句跟search api是一样的,很方便。
然后就会得到类似下面的结果:
{
"took" : 147,
"timed_out": false,
"deleted": 119,
"batches": 1,
"version_conflicts": 0,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
"total": 119,
"failures" : [ ]
}
- version_conflicts表示是否有数据版本冲突,因为开始要删除时,delete_by_query会得到索引快照并且使用内部版本号来找到要删除哪些文档。如果获取到快照与执行删除过程的这段时间内,有文档发生变化,那么版本就会冲突。另外版本冲突后可以设置conflicts=proceed跳过冲突。 <