获取集群中指定存储脚本的信息。
API 格式 #
GET /_scripts/{id}
API 作用 #
该 API 用于检索集群中的存储脚本:
- 获取指定 ID 的存储脚本
- 查看脚本语言和源代码
- 检查脚本是否存在于集群中
API 参数 #
路径参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
{id} | String | 是 | - | 要查询的存储脚本 ID |
查询参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
master_timeout | Time | 否 | 默认超时 | 连接主节点的超时时间 |
请求示例 #
查询指定脚本 #
GET /_scripts/calculate-score
设置主节点超时 #
GET /_scripts/calculate-score?master_timeout=50s
响应示例 #
成功响应(找到脚本) #
{
"_id": "calculate-score",
"found": true,
"script": {
"lang": "painless",
"source": "Math.log(_score * 2) + params.my_modifier",
"options": {
"content_type": "application/json"
}
}
}
未找到响应 #
{
"_id": "nonexistent-script",
"found": false
}
响应字段说明 #
| 字段 | 类型 | 描述 |
|---|---|---|
_id | String | 请求的脚本 ID |
found | Boolean | 是否找到脚本 |
script | Object | 脚本详情(仅在找到时存在) |
script.lang | String | 脚本语言(如 painless、mustache) |
script.source | String | 脚本源代码 |
script.options | Object | 编译器选项(可选) |
HTTP 状态码 #
| 状态码 | 描述 |
|---|---|
| 200 OK | 成功找到脚本 |
| 404 Not Found | 脚本不存在 |
验证规则 #
- 脚本 ID 必须指定且不能为空
- 脚本 ID 不能包含
#字符
使用场景 #
- 脚本验证:确认脚本是否存在于集群中
- 脚本查看:查看脚本的源代码和配置
- 版本管理:检查脚本的当前版本
- 依赖检查:在使用脚本前验证其存在性
注意事项 #
- 脚本内容:返回的是脚本的完整源代码
- 选项信息:编译选项仅在设置时返回
- 响应格式:未找到脚本时仍返回 200 OK,但
found为false
相关操作 #
- PUT /_scripts/{id}:创建或更新存储脚本
- DELETE /_scripts/{id}:删除存储脚本
- GET /_script_context:查询支持的脚本上下文
- GET /_script_language:查询支持的脚本语言
实现文件 #
- REST 处理器:
RestGetStoredScriptAction.java - 请求类:
GetStoredScriptRequest.java - 响应类:
GetStoredScriptResponse.java - 脚本源:
StoredScriptSource.java





