Link Search Menu Expand Document Documentation Menu

按查询删除

1.0 版引入

您可以在删除请求中包含一个查询,以便 OpenSearch 删除所有与该查询匹配的文档。

端点

POST <index>/_delete_by_query

路径参数

参数 类型 描述
<索引> 字符串 要删除的数据流、索引或别名的名称或列表。支持通配符。如果留空,OpenSearch 将搜索所有索引。

查询参数

所有参数都是可选的。

参数 类型 描述
allow_no_indices 布尔型 是否忽略不匹配任何索引的通配符。默认值为 true
分析器 字符串 查询字符串中要使用的分析器。
analyze_wildcard 布尔型 指定是否分析通配符和前缀查询。默认值为 false
conflicts 字符串 指示 OpenSearch 在按查询删除操作遇到版本冲突时应如何处理。有效选项为 abort(中止)和 proceed(继续)。默认值为 abort
default_operator 字符串 指示字符串查询的默认运算符应为 AND 还是 OR。默认值为 OR
df 字符串 如果查询字符串中未提供字段前缀,则使用的默认字段。
expand_wildcards 字符串 指定通配符表达式可以匹配的索引类型。支持逗号分隔值。有效值为 all(匹配任何索引)、open(匹配开放的非隐藏索引)、closed(匹配关闭的非隐藏索引)、hidden(匹配隐藏索引)和 none(拒绝通配符表达式)。默认值为 open
from 整数 开始搜索的起始索引。默认值为 0。
ignore_unavailable 布尔型 指定是否在响应中包含缺失或关闭的索引,并在搜索请求期间忽略不可用的分片。默认值为 false
lenient 布尔型 指定 OpenSearch 是否应接受查询存在格式错误(例如,查询文本字段时使用整数)的请求。默认值为 false
max_docs 整数 按查询删除操作最多应处理多少文档。默认值为所有文档。
preference 字符串 指定 OpenSearch 应在哪个分片或节点上执行按查询删除操作。
q 字符串 Lucene 查询字符串的查询。
request_cache 布尔型 指定 OpenSearch 是否应使用请求缓存。默认值为索引设置中是否启用它。
refresh 布尔型 如果为 true,OpenSearch 会刷新分片,使按查询删除操作对搜索结果可用。有效值为 truefalse。默认值为 false
requests_per_second 整数 指定请求的节流,以每秒子请求数表示。默认值为 -1,表示不节流。
路由 字符串 用于将操作路由到特定分片的值。
scroll 时间 搜索上下文应保持打开的时间量。
scroll_size 整数 操作的滚动请求大小。默认值为 1000。
search_type 字符串 OpenSearch 是否应使用全局词条和文档频率来计算相关性分数。有效选项为 query_then_fetchdfs_query_then_fetchquery_then_fetch 使用分片的本地词条和文档频率对文档进行评分。它通常更快,但准确性较低。dfs_query_then_fetch 使用所有分片的全局词条和文档频率对文档进行评分。它通常较慢,但准确性较高。默认值为 query_then_fetch
search_timeout 时间 等待多长时间 OpenSearch 才认为请求超时。默认值为无超时。
slices 字符串或整数 将操作切分成多少个切片以加快处理速度。指定一个整数来设置将操作分成多少个切片,或者使用 auto,它会告诉 OpenSearch 自行决定分成多少个切片。如果索引中有很多分片,请设置一个较低的数字以提高效率。默认值为 1,表示任务不应被划分。
sort(排序) 字符串 要排序的 : 对的逗号分隔列表。
_source 字符串 指定是否在响应中包含 _source 字段。
_source_excludes 字符串 要从响应中排除的源字段的逗号分隔列表。
_source_includes 字符串 要包含在响应中的源字段的逗号分隔列表。
stats 字符串 与请求关联的值,用于额外日志记录。
terminate_after 整数 OpenSearch 在终止请求前应处理的最大匹配文档数(命中数)。
timeout 时间 操作应等待活动分片响应的时间。默认值为 1m
version 布尔型 是否将文档版本作为匹配项包含在内。
wait_for_active_shards 字符串 在 OpenSearch 执行操作之前必须处于活动状态的分片数量。有效值为 all 或索引中分片总数以内的任何整数。默认值为 1,即主分片。
wait_for_completion 布尔型 将此参数设置为 false 表示 OpenSearch 不应等待完成,而是异步执行此请求。异步请求在后台运行,您可以使用 任务 (Tasks) API 来监控进度。

请求正文字段

要搜索索引中的特定文档,您必须在请求正文中包含一个 查询,OpenSearch 将使用该查询来匹配文档。如果您不使用查询,OpenSearch 会将您的删除请求视为简单的 删除文档操作

{
  "query": {
    "match": {
      "movie-length": "124"
    }
  }
}

请求示例

POST sample-index1/_delete_by_query
{
  "query": {
    "match": {
      "movie-length": "124"
    }
  }
}

示例响应

{
  "took": 143,
  "timed_out": false,
  "total": 1,
  "deleted": 1,
  "batches": 1,
  "version_conflicts": 0,
  "noops": 0,
  "retries": {
    "bulk": 0,
    "search": 0
  },
  "throttled_millis": 0,
  "requests_per_second": -1.0,
  "throttled_until_millis": 0,
  "failures": []
}

响应正文字段

字段 描述
took OpenSearch 完成操作所需的时间(毫秒)。
timed_out 操作期间是否有任何删除请求超时。
total 已处理的文档总数。
deleted 已删除的文档总数。
batches 请求处理的滚动响应数量。
version_conflicts 请求遇到的冲突数量。
noops 操作期间 OpenSearch 忽略了多少删除请求。此字段始终返回 0。
retries 批量和搜索重试请求的数量。
throttled_millis 请求期间节流的毫秒数。
requests_per_second 操作期间每秒执行的请求数量。
throttled_until_millis OpenSearch 执行下一个节流请求前的时间量。在按查询删除请求中始终等于 0。
failures 请求期间发生的任何失败。
剩余 350 字符

有问题?

想要贡献?