Delete API 删除文档


Delete API | Elasticsearch Reference [7.6] | Elastic

语法

DELETE /<index>/_doc/<_id>

示例

DELETE /twitter/_doc/1

Delete by Query 指定条件删除文档


Delete by query API | Elasticsearch Reference [7.6] | Elastic

在通过查询请求处理删除时,Elasticsearch 会依次执行多个搜索请求,以找到要删除的所有匹配文档。对于每一批匹配的文档,都会执行批量删除请求。如果一个搜索或批量请求被拒绝,则请求最多重试10次,并有指数级的回退。如果达到最大重试限制,则处理停止,并在响应中返回所有失败的请求。任何成功完成的删除请求仍然会被保留,不会回滚。

可以设置 conflicts=proceed ,在发生版本冲突时候进行计数,而非停止、返回。

# 删除单个索引内容
POST twitter/_delete_by_query?conflicts=proceed
{
  "query": {
    "match_all": {}
  }
}
# 删除多个索引内容
POST /twitter,blog/_delete_by_query
{
  "query": {
    "match_all": {}
  }
}
# 使用 Range Query 查询条件
POST twitter/_delete_by_query?routing=1
{
  "query": {
    "range" : {
        "age" : {
           "gte" : 10
        }
    }
  }
}
# 修改批量尺寸,默认为 1000
POST twitter/_delete_by_query?scroll_size=5000
{
  "query": {
    "term": {
      "user": "kimchy"
    }
  }
}