Watcher 脚本负载转换编辑

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

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

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

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

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

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

表 89. 脚本负载转换设置

名称 必需 默认 描述

inline

-

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

id

-

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

lang

painless

脚本语言

params

-

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

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

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