测试数据##
POST _bulk
{ "index" : { "_index" : "test", "_type" : "_doc", "_id" : "1" } }
{"idx": 1,"message": "some thing","count": 10}
{ "index" : { "_index" : "test", "_type" : "_doc", "_id" : "2" } }
{"idx": 2,"message": "message has been sent to him","count": 10}
{ "index" : { "_index" : "test", "_type" : "_doc", "_id" : "3" } }
{"idx": 3,"message": "haha thing","count": 10}
- 删除包含some或message的文档
POST test/_delete_by_query
{
"query": {
"match": {
"message": "some message"
}
}
}
- 路由同样routing=xxx
在_delete_by_query执行期间,依次执行多个搜索请求,以便找到要删除的所有匹配文档。每次发现一批文档时,执行相应的批量请求以删除所有这些文档。如果搜索或批量请求被拒绝,_delete_by_query依赖于默认策略来重试拒绝的请求(最多10次,以指数返回)。达到最大重试次数限制会导致_delete_by_query中止,并在响应失败中返回所有故障。已经执行的删除仍然保持。换句话说,进程没有回滚,只会中止。当第一个故障导致中止时,失败批量请求返回的所有故障都会返回到故障元素中;因此,有可能会有不少失败的实体。
如果您想计算版本冲突,而不是导致它们中止,那么在URL上设置conflicts=proceed或在请求体重中设置"conflicts": "proceed"。
网友评论