Script Processor(脚本处理器)

可以在 ingest pipelines 中执行 inlinestored(存储),和 file scripts(文件脚本)。

请参阅 如何使用脚本 了解有关编写脚本的更多信息。Script Processor(脚本处理器)利用编译脚本的缓存来提高性能。由于处理器中指定的脚本可能会把每个 document(文档)给重新编译。因此了解脚本缓存的工作原理是非常重要的。要了解有关缓存的更多信息,请参阅 脚本缓存

Table 28. Script Options(表 28. 脚本选项)

Name(名称) Required(必要的) Default(默认值) Description(描述)
lang no "painless" 脚本语言
file no - 要引用的脚本文件
id no - 要引用所存储的脚本 ID
inline no - An inline script to be executed
params no - 脚本参数

filedidinline 中的选项必须提供,为了正确的引用脚本以执行。

您可以通过使用 ctx变量从脚本 context(上下文)中访问当前的 ingest document

以下示例设置了一个名为 field_a_plus_b_times_c 的新字段,它是两个现有字段 filed_afield_b 的和,然后再乘以参数 param_c 的值。

{
  "script": {
    "lang": "painless",
    "inline": "ctx.field_a_plus_b_times_c = (ctx.field_a + ctx.field_b) * params.param_c",
    "params": {
      "param_c": 10
    }
  }
}