Link Search Menu Expand Document Documentation Menu

批量获取文档

1.0 版引入

批量获取操作允许您在一个请求中运行多个 GET 操作,以便您可以获取所有符合您条件的文档。

端点

GET _mget
GET <index>/_mget
POST _mget
POST <index>/_mget

路径参数

参数 类型 描述
<index> 字符串 要从中检索文档的索引名称。

查询参数

所有参数都是可选的。

参数 类型 描述
preference 字符串 指定 OpenSearch 应在哪些节点或分片上执行批量获取操作。默认值为 random
realtime 布尔型 指定操作是否应实时运行。如果为 false,操作将等待索引刷新以分析源来检索数据,这使得操作接近实时。默认值为 true
refresh 布尔型 如果为 true,OpenSearch 会刷新分片,使批量获取操作可用于搜索结果。有效选项包括 truefalsewait_for,其中 wait_for 告诉 OpenSearch 在执行操作之前等待刷新。默认值为 false
路由 字符串 用于将批量获取操作路由到特定分片的值。
stored_fields 布尔型 指定 OpenSearch 是否应从索引而不是文档的 _source 中检索文档字段。默认值为 false
_source 字符串 是否在查询响应中包含 _source 字段。默认值为 true
_source_excludes 字符串 要在查询响应中排除的源字段的逗号分隔列表。
_source_includes 字符串 要在查询响应中包含的源字段的逗号分隔列表。

请求正文

如果您未在请求的 URL 中指定索引,则必须在请求正文中指定目标索引和相关的文档 ID。其他字段是可选的。

字段 类型 描述 必需
docs 数组 您要检索数据的文档。可以包含属性:_id_index_routing_source_stored_fields。如果您在 URL 中指定了索引,则可以省略此字段并添加要检索的文档 ID。 如果未在 URL 中指定索引,则为“是”
_id 字符串 文档的 ID。 如果请求正文中指定了 docs,则为“是”
_index 字符串 索引的名称。 如果未在 URL 中指定索引,则为“是”
_routing 字符串 拥有该文档的分片值。 如果索引文档时使用了路由值,则为“是”
_source 对象 指定是返回索引中的 _source 字段(布尔值),还是返回特定字段(数组),或者是否包含或排除某些字段。
_source.includes 数组 指定要在查询响应中包含哪些字段。例如,"_source": { "include": ["Title"] } 从索引中检索 Title
_source.excludes 数组 指定要在查询响应中排除哪些字段。例如,"_source": { "exclude": ["Director"] } 从查询响应中排除 Director
ids 数组 要检索的文档 ID。仅当在 URL 中指定了索引时才允许使用。

示例请求

在请求正文中指定索引

以下示例请求在请求正文中指定了索引

GET _mget
{
  "docs": [
  {
    "_index": "sample-index1",
    "_id": "1"
  },
  {
    "_index": "sample-index2",
    "_id": "1",
    "_source": {
      "include": ["Length"]
    }
  }
  ]
}

在 URL 中指定索引

以下示例在 URL 中指定了索引

GET sample-index1/_mget
{
  "docs": [
    {
      "_id": "1",
      "_source": false
    },
    {
      "_id": "2",
      "_source": [ "Director", "Title" ]
    }
  ]
}

示例响应

以下示例响应返回多个文档的信息

{
  "docs": [
    {
      "_index": "sample-index1",
      "_id": "1",
      "_version": 4,
      "_seq_no": 5,
      "_primary_term": 19,
      "found": true,
      "_source": {
        "Title": "Batman Begins",
        "Director": "Christopher Nolan"
      }
    },
    {
      "_index": "sample-index2",
      "_id": "1",
      "_version": 1,
      "_seq_no": 6,
      "_primary_term": 19,
      "found": true,
      "_source": {
        "Title": "The Dark Knight",
        "Director": "Christopher Nolan"
      }
    }
  ]
}

响应正文字段

字段 描述
_index 索引的名称。
_id 文档的 ID。
_version 文档的版本号。每当文档更改时更新。
_seq_no 文档索引时分配的序列号。
primary_term 文档索引时分配的主术语。
found 文档是否存在。
_routing 文档被路由到的分片。如果文档未路由到特定分片,则此字段将被省略。
_source 如果 found 为 true,则包含文档数据。如果参数中将 _source 设置为 false 或将 stored_fields 设置为 true,则此字段将被省略。
_fields 包含索引中存储的文档数据。仅当 stored_fieldsfound 都为 true 时才返回。
剩余 350 字符

有问题?

想贡献?