脚本有效载荷转换
一种 有效负载转换,它在监视(watch)执行上下文中对当前有效负载执行脚本,并将其替换为新生成的有效负载。以下代码片段展示了如何在监视级别定义一个简单的脚本有效负载转换
{
"transform" : {
"script" : "return [ 'time' : ctx.trigger.scheduled_time ]"
}
}
- 一个简单的
painless脚本,它创建一个包含单个time字段的新有效负载,该字段保存计划时间。
注意
执行的脚本可以返回一个相当于 Java™ Map 或 JSON 对象的有效模型(您需要查阅特定脚本语言的文档以了解该构造是什么)。返回的任何其他值都将被赋值给 _value 变量,并通过该变量进行访问。
script 属性可以包含一个字符串值,在这种情况下,它将被视为内联脚本,并假定使用默认的 Elasticsearch 脚本语言(如 脚本编写 中所述)。您可以使用 Elasticsearch 支持的其他脚本语言。为此,您需要将 script 字段设置为一个描述脚本及其语言的对象。下表列出了可以配置的可能设置
| 名称 | 必填 | 默认值 | 描述 |
|---|---|---|---|
inline |
是 | - | 当使用内联脚本时,此字段包含脚本本身。 |
id |
是 | - | 当引用存储的脚本时,此字段包含脚本的 ID。 |
lang |
否 | painless |
脚本语言 |
params |
否 | - | 脚本可访问的其他参数/变量 |
使用脚本的对象表示法时,必须定义 inline 或 id 字段中的一个(且只能定义一个)。
注意
除了提供的 params 外,脚本还可以访问 标准监视执行上下文参数。