批量获取文档
1.0 版引入
批量获取操作允许您在一个请求中运行多个 GET 操作,以便您可以获取所有符合您条件的文档。
端点
GET _mget
GET <index>/_mget
POST _mget
POST <index>/_mget
路径参数
参数 | 类型 | 描述 |
---|---|---|
<index> | 字符串 | 要从中检索文档的索引名称。 |
查询参数
所有参数都是可选的。
参数 | 类型 | 描述 |
---|---|---|
preference | 字符串 | 指定 OpenSearch 应在哪些节点或分片上执行批量获取操作。默认值为 random 。 |
realtime | 布尔型 | 指定操作是否应实时运行。如果为 false,操作将等待索引刷新以分析源来检索数据,这使得操作接近实时。默认值为 true 。 |
refresh | 布尔型 | 如果为 true,OpenSearch 会刷新分片,使批量获取操作可用于搜索结果。有效选项包括 true 、false 和 wait_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_fields 和 found 都为 true 时才返回。 |