【Elasticsearch 】【实操】【 _delete_by_query】从ES中一次性删除符合条件数据

下面的 curl 命令用于向 Elasticsearch 发送一个 _delete_by_query 请求,目的是从指定索引中批量删除符合查询条件的文档

curl -X POST -u elastic:elastic#SZT5764 \
http://es_host:19200/index_name/_delete_by_query \
-H "Content-Type: application/json" \
-d '{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "mhid": "FNQQ-QZFU-FYFA"
          }
        }
      ]
    }
  },
  "size": 10
}
'

关键点解释

命令结构

  1. curl -X POST

    • curl 是一个命令行工具,用于向服务器发送 HTTP 请求。
    • -X POST 指定请求方法为 POST(用于创建或修改资源)。对于 _delete_by_query 操作,POST 是必须的。
  2. -u elastic:elastic#SZT5764

    • 使用 -u 选项提供基本的 HTTP 认证信息。
    • elastic 是用户名,elastic#SZT5764 是密码,表明需要以管理员权限连接到 Elasticsearch。
  3. http://es_host:19200/index_name/_delete_by_query

    • http://es_host:19200 是 Elasticsearch 服务器地址和端口。
      • es_host 是服务器主机名(应替换为实际主机地址,如 IP)。
      • 19200 是端口号,通常 Elasticsearch 使用默认的 9200,但这里自定义为 19200
    • index_name 是索引的名称,表示要操作的具体 Elasticsearch 索引。
    • _delete_by_query 是一个 Elasticsearch API,用于根据查询条件批量删除文档。
  4. -H "Content-Type: application/json"

    • 添加 HTTP 请求头,指定请求体内容的格式为 JSON(这是 Elasticsearch 要求的标准格式)。
  5. -d '{ ... }'

    • 使用 -d 提供请求体(JSON 格式),定义查询条件和操作参数。

请求体部分详解

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "mhid": "FNQQ-QZFU-FYFA"
          }
        }
      ]
    }
  },
  "size": 10
}
  1. "query"

    • 定义删除操作的查询条件,决定哪些文档将被匹配和删除。
  2. "bool"

    • 使用布尔查询 (bool query),可以结合多个子查询以更复杂的逻辑筛选文档。
  3. "must"

    • must 表示条件“必须满足”,即仅删除满足此条件的文档。
    • must 内可以包含多个条件,这里只有一个条件。
  4. "match"

    • match 是一个查询子句,用于模糊匹配文档中指定字段的值。
    • "mhid": "FNQQ-QZFU-FYFA" 表示查询所有 mhid 字段的值为 "FNQQ-QZFU-FYFA" 的文档。
  5. "size": 10

    • 限制单次 _delete_by_query 删除的文档数最多为 10 条。
    • 这不会影响后续可以继续运行更多删除命令(直到删除所有符合条件的文档),但每次删除时只会操作最多 10 个文档。

实际含义

此命令向 Elasticsearch 索引 index_name 发送一个 _delete_by_query 请求,删除以下文档:

  • 文档的 mhid 字段值为 FNQQ-QZFU-FYFA
  • 单次操作中最多删除 10 条匹配的文档。(执行一次会把所有满足条件的数据都删除,但是在底层会自动进行分批处理)

执行结果

{"took":950,"timed_out":false,"total":2564,"deleted":2564,"batches":257,"version_conflicts":0,"noops":0,"retries":{"bulk":0,"search":0},"throttled_millis":0,"requests_per_second":-1.0,"throttled_until_millis":0,"failures":[]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值