---
title: "IDs 查询"
date: 0001-01-01
summary: "IDs 查询 #  使用 ids 查询在 _id 字段中搜索具有一个或多个特定文档 ID 值的文档。例如，以下查询请求 ID 为 34229 和 91296 的文档：
相关指南（先读这些） #    结构化搜索  Query DSL 基础  GET shakespeare/_search { &#34;query&#34;: { &#34;ids&#34;: { &#34;values&#34;: [ 34229, 91296 ] } } } 参数说明 #  查询接受以下参数。
   参数 数据类型 描述     values Array of strings 要搜索的文档 ID。必填。   boost Float 一个浮点值，用于指定此字段相对于相关性分数的权重。值高于 1.0 会增加字段的相关性。值介于 0."
---


# IDs 查询

使用 `ids` 查询在 `_id` 字段中搜索具有一个或多个特定文档 ID 值的文档。例如，以下查询请求 ID 为 `34229` 和 `91296` 的文档：

## 相关指南（先读这些）

- [结构化搜索]({{< relref "/docs/features/query-dsl/structured-search.md" >}})
- [Query DSL 基础]({{< relref "/docs/features/query-dsl/query-dsl-basics.md" >}})

```
GET shakespeare/_search
{
  "query": {
    "ids": {
      "values": [
        34229,
        91296
      ]
    }
  }
}

```

## 参数说明

查询接受以下参数。

| 参数     | 数据类型         | 描述                                                                                                                                      |
| -------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `values` | Array of strings | 要搜索的文档 ID。必填。                                                                                                                   |
| `boost`  | Float            | 一个浮点值，用于指定此字段相对于相关性分数的权重。值高于 1.0 会增加字段的相关性。值介于 0.0 和 1.0 之间会降低字段的相关性。默认值为 1.0。 |

## 典型使用场景

### 批量获取已知文档

当你已经知道一组文档的 ID（例如从其他查询结果或外部系统获得），可以直接用 `ids` 查询来批量检索：

```
GET orders/_search
{
  "query": {
    "ids": {
      "values": ["order-001", "order-002", "order-003"]
    }
  }
}
```

### 与 Bool 查询组合

`ids` 查询可以与其他查询条件组合使用。例如，在一批已知文档中过滤特定状态的订单：

```
GET orders/_search
{
  "query": {
    "bool": {
      "must": {
        "ids": {
          "values": ["order-001", "order-002", "order-003", "order-004"]
        }
      },
      "filter": {
        "term": {
          "status": "shipped"
        }
      }
    }
  }
}
```

## ids 查询 vs. mget API

| 对比项     | `ids` 查询                     | `_mget` API                          |
| ---------- | ------------------------------ | ------------------------------------ |
| 返回格式   | 标准搜索响应（`hits`）         | 文档数组                             |
| 评分       | 支持 `boost` 调整相关性        | 无评分，直接获取文档                 |
| 可组合性   | 可嵌入 `bool` 等复合查询       | 独立 API，不可组合                   |
| 适用场景   | 需要搜索上下文（排序、过滤等） | 简单批量获取，性能更优               |

> **提示**：如果只需要按 ID 获取文档，不需要评分或额外过滤，使用 `_mget` API 性能更好。

