使用_delete_by_query操作,根据查询匹配进行删除。
- 删除单条数据
POST http://es-server:9200/{index_name}/_delete_by_query
#body
{
"query":{
"term":{
"_id":4043
}
}
}
- 清空索引数据
POST http://es-server:9200/{index_name}/_delete_by_query
#body
{
"query": {
"match_all": {}
}
}
清空多个索引数据
POST http://es-server:9200/{index1_name},{index2_name}/_delete_by_query
#body
{
"query": {
"match_all": {}
}
}
返回结果
{
"took" : 147, #执行时间,毫秒数
"timed_out": false, #是否超时
"total": 119, #处理文档条数
"deleted": 119, #删除文档条数
"batches": 1, # by_query回调的响应次数
"version_conflicts": 0, #by_query命中的版本冲突数
"noops": 0, #在by_query方式下为0。
"retries": {
"bulk": 0, #整体重试次数
"search": 0 #查询重试次数
},
"throttled_millis": 0, # 每秒休眠的时间,已符合requests_per_second的设置
"requests_per_second": -1.0, # 每秒最大有效操作数
"throttled_until_millis": 0, # 在by_query方式为0,api方式下标识开始的毫秒时间
"failures" : [ ] #如果进程中有任何不可恢复的错误,则返回失败数组。如果这是非空的,那么请求会因为这些失败而中止。按查询删除是使用批处理实现的,任何失败都会导致整个进程中止,但当前批处理中的所有失败都会收集到数组中。您可以使用conflicts选项来防止重新索引在版本冲突时中止。
}