📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

获取集群中指定存储脚本的信息。

API 格式 #

GET /_scripts/{id}

API 作用 #

该 API 用于检索集群中的存储脚本:

  • 获取指定 ID 的存储脚本
  • 查看脚本语言和源代码
  • 检查脚本是否存在于集群中

API 参数 #

路径参数 #

参数类型是否必填默认值描述
{id}String-要查询的存储脚本 ID

查询参数 #

参数类型是否必填默认值描述
master_timeoutTime默认超时连接主节点的超时时间

请求示例 #

查询指定脚本 #

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
}

响应字段说明 #

字段类型描述
_idString请求的脚本 ID
foundBoolean是否找到脚本
scriptObject脚本详情(仅在找到时存在)
script.langString脚本语言(如 painlessmustache
script.sourceString脚本源代码
script.optionsObject编译器选项(可选)

HTTP 状态码 #

状态码描述
200 OK成功找到脚本
404 Not Found脚本不存在

验证规则 #

  • 脚本 ID 必须指定且不能为空
  • 脚本 ID 不能包含 # 字符

使用场景 #

  1. 脚本验证:确认脚本是否存在于集群中
  2. 脚本查看:查看脚本的源代码和配置
  3. 版本管理:检查脚本的当前版本
  4. 依赖检查:在使用脚本前验证其存在性

注意事项 #

  1. 脚本内容:返回的是脚本的完整源代码
  2. 选项信息:编译选项仅在设置时返回
  3. 响应格式:未找到脚本时仍返回 200 OK,但 foundfalse

相关操作 #

  • PUT /_scripts/{id}:创建或更新存储脚本
  • DELETE /_scripts/{id}:删除存储脚本
  • GET /_script_context:查询支持的脚本上下文
  • GET /_script_language:查询支持的脚本语言

实现文件 #

  • REST 处理器RestGetStoredScriptAction.java
  • 请求类GetStoredScriptRequest.java
  • 响应类GetStoredScriptResponse.java
  • 脚本源StoredScriptSource.java