Watcher 脚本负载转换

编辑

一种负载转换,它在监视执行上下文中的当前负载上执行脚本,并将其替换为新生成的负载。以下片段显示了如何在监视级别定义简单的脚本负载转换

script 负载转换通常与search 负载转换结合使用时非常有用,其中脚本可以仅从搜索结果中提取重要数据,从而使负载保持最小。这可以通过chain 负载转换实现。

{
  "transform" : {
    "script" : "return [ 'time' : ctx.trigger.scheduled_time ]" 
  }
}

一个简单的painless 脚本,它创建一个新的负载,其中包含一个名为time 的字段,该字段保存计划时间。

执行的脚本可以返回一个有效的模型,该模型等效于 Java™ Map 或 JSON 对象(您需要查阅特定脚本语言的文档以了解此构造是什么)。返回的任何其他值都将被分配并可通过/经由_value 变量访问。

script 属性可以保存一个字符串值,在这种情况下,它将被视为内联脚本,并将假定默认的 Elasticsearch 脚本语言(如脚本编写中所述)。您可以使用 Elasticsearch 支持的其他脚本语言。为此,您需要将script 字段设置为一个对象,该对象描述脚本及其语言。下表列出了可以配置的可能设置

表 90. 脚本负载转换设置

名称 必填 默认值 描述

inline

-

使用内联脚本时,此字段保存脚本本身。

id

-

引用存储的脚本时,此字段保存脚本的 ID。

lang

painless

脚本语言

params

-

脚本可访问的其他参数/变量

使用脚本的对象表示法时,必须定义inlineid 字段中的一个(且只有一个)。

除了提供的params 之外,脚本还可以访问标准监视执行上下文参数