常见 REST 参数
1.0 版引入
OpenSearch 支持以下所有 REST 操作参数:
人类可读输出
要将输出单位转换为人类可读的值(例如,1h 表示 1 小时,1kb 表示 1,024 字节),请在请求 URL 中添加 ?human=true。
请求示例
以下请求要求响应值采用人类可读格式
GET <index_name>/_search?human=true
美化结果
要获取可读格式的 JSON 响应,请在请求 URL 中添加 ?pretty=true。
请求示例
以下请求要求响应以美化的 JSON 格式显示
GET <index_name>/_search?pretty=true
内容类型
要在请求正文中指定内容类型,请在请求头中使用 Content-Type 键名。大多数操作支持 JSON、YAML 和 CBOR 格式。
请求示例
以下请求为请求正文指定 JSON 格式
curl -H "Content-type: application/json" -XGET localhost:9200/_scripts/<template_name>
查询字符串中的请求正文
如果客户端库不接受非 POST 请求的请求正文,请使用 source 查询字符串参数传递请求正文。此外,请使用受支持的媒体类型(例如 application/json)指定 source_content_type 参数。
请求示例
以下请求在 shakespeare 索引中搜索特定字段和值的文档
GET shakespeare/search?source={"query":{"exists":{"field":"speaker"}}}&source_content_type=application/json
堆栈跟踪
要在抛出异常时在响应中包含错误堆栈跟踪,请在请求 URL 中添加 error_trace=true。
请求示例
以下请求将 error_trace 设置为 true,以便响应返回由异常触发的错误
GET <index_name>/_search?error_trace=true
过滤响应
要减小响应大小,请使用 filter_path 参数过滤返回的字段。此参数接受逗号分隔的过滤器列表。它支持使用通配符匹配任何字段或字段名称的一部分。您也可以使用 - 排除字段。
请求示例
以下请求指定过滤器以限制响应中返回的字段
GET _search?filter_path=<field_name>.*,-<field_name>
单位
OpenSearch API 支持以下单位。
时间单位
下表列出了所有支持的时间单位。
| 单位 | 指定为 |
|---|---|
| 天 | 天 (d) |
| 小时 | h |
| 分钟 | m |
| 秒 | s |
| 毫秒 | ms |
| 微秒 | micros |
| 纳秒 | nanos |
距离单位
下表列出了所有支持的距离单位。
| 单位 | 指定为 |
|---|---|
| 英里 | mi 或 miles |
| 码 | yd 或 yards |
| 英尺 | ft 或 feet |
| 英寸 | in 或 inch |
| 千米 | km 或 kilometers |
| 米 | m 或 meters |
| 厘米 | cm 或 centimeters |
| 毫米 | mm 或 millimeters |
| 海里 | NM、nmi 或 nauticalmiles |
X-Opaque-Id 头
您可以使用 X-Opaque-Id 头为任何请求指定一个不透明标识符。此标识符用于跟踪任务并消除服务器端日志中的弃用警告重复。此标识符用于区分向 OpenSearch 集群发送请求的调用者。请勿为每个请求指定唯一值。
请求示例
以下请求向请求添加一个不透明 ID
curl -H "X-Opaque-Id: my-curl-client-1" -XGET localhost:9200/_tasks