索引文档
1.0 版引入
您可以使用 Index document
操作向索引中添加单个文档。
端点
PUT <index>/_doc/<_id>
POST <index>/_doc
PUT <index>/_create/<_id>
POST <index>/_create/<_id>
- PUT 操作使用指定的 ID 向索引添加或更新文档。用于受控的文档创建或更新。
- POST 操作将自动生成的 ID 的文档添加到索引。适用于添加新文档而无需指定 ID 的情况。
_create
是一个类型标识符,指示仅当具有指定 ID 的文档尚不存在时才应创建文档。<index>
表示将添加文档的索引名称。<_id>
表示文档的唯一标识符。
添加示例索引
可以通过终端中的 curl 命令或通过 API 将示例数据添加到索引中。
要测试文档 API,请按照以下步骤添加文档:
- 打开 OpenSearch Dashboards。
- 导航到操作菜单。
- 在管理部分,选择开发工具。
- 输入命令,然后选择绿色三角形播放按钮以发送请求。以下是一些示例命令。
路径参数
参数 | 类型 | 描述 | 必需 |
---|---|---|---|
<index> | 字符串 | 索引的名称。 | 是 |
<id> | 字符串 | 附加到文档的唯一标识符。要自动生成 ID,请在请求中使用 POST <target>/doc 代替 PUT。 | 否 |
查询参数
在您的请求中,您必须指定要将文档添加到的索引。如果该索引不存在,OpenSearch 将自动创建该索引并将您的文档添加进去。所有其他参数都是可选的。
参数 | 类型 | 描述 | 必需 |
---|---|---|---|
if_seq_no | 整数 | 仅当文档具有指定的序列号时才执行索引操作。 | 否 |
if_primary_term | 整数 | 仅当文档具有指定的主词时才执行索引操作。 | 否 |
op_type | 枚举 | 指定要对文档完成的操作类型。有效值为 create (仅当文档不存在时才索引文档)和 index 。如果请求中包含文档 ID,则默认值为 index 。否则,默认值为 create 。 | 否 |
pipeline | 字符串 | 将索引操作路由到特定的管道。 | 否 |
路由 | 字符串 | 用于将索引操作分配给特定分片的值。 | 否 |
refresh | 枚举 | 如果为 true,OpenSearch 会刷新分片以使操作对搜索可见。有效选项为 true 、false 和 wait_for ,后者指示 OpenSearch 在执行操作前等待刷新。默认值为 false 。 | 否 |
timeout | 时间 | 等待集群响应的时长。默认值为 1m 。 | 否 |
version | 整数 | 文档的版本号。 | 否 |
version_type | 枚举 | 为文档分配特定类型。有效选项为 external (如果指定的版本号大于文档的当前版本,则检索文档)和 external_gte (如果指定的版本号大于或等于文档的当前版本,则检索文档)。例如,要索引文档版本 3,请使用 /_doc/1?version=3&version_type=external 。 | 否 |
wait_for_active_shards | 字符串 | 在 OpenSearch 处理请求之前必须可用的活动分片数量。默认值为 1(仅主分片)。设置为 all 或正整数。大于 1 的值需要副本。例如,如果指定值为 3,则索引必须有两个副本分布在另外两个节点上,操作才能成功。 | 否 |
require_alias | 布尔型 | 指定目标索引是否必须是索引别名。默认值为 false 。 | 否 |
示例请求
以下示例请求为名为 sample_index
的索引创建示例索引文档:
PUT 请求示例
PUT /sample_index/_doc/1
{
"name": "Example",
"price": 29.99,
"description": "To be or not to be, that is the question"
}
POST 请求示例
POST /sample_index/_doc
{
"name": "Another Example",
"price": 19.99,
"description": "We are such stuff as dreams are made on"
}
示例响应
{
"_index": "sample-index",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
响应正文字段
字段 | 描述 |
---|---|
_index | 索引的名称。 |
_id | 文档的 ID。 |
_version | 文档的版本。 |
result | 索引操作的结果。 |
_shards | 关于集群分片的详细信息。 |
total | 分片总数。 |
successful | OpenSearch 成功添加文档的分片数量。 |
failed | OpenSearch 未能添加文档的分片数量。 |
_seq_no | 文档索引时分配的序列号。 |
_primary_term | 文档索引时分配的主词。 |