正在加载

脚本有效负载转换

Elastic Stack 无服务器

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

提示

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

{
  "transform" : {
    "script" : "return [ 'time' : ctx.trigger.scheduled_time ]"
  }
}
  1. 一个简单的 painless 脚本,它创建一个新的有效负载,其中包含一个 time 字段,用于保存计划时间。
注意

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

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

名称 必需 默认 描述
inline - 当使用内联脚本时,此字段保存脚本本身。
id - 当引用存储的脚本时,此字段保存脚本的 id。
lang painless 脚本语言
params - 脚本可访问的附加参数/变量

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

注意

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

© . All rights reserved.