可以在 ingest pipelines 中执行 inline,stored(存储),和 file scripts(文件脚本)。
请参阅 如何使用脚本 了解有关编写脚本的更多信息。Script Processor(脚本处理器)利用编译脚本的缓存来提高性能。由于处理器中指定的脚本可能会把每个 document(文档)给重新编译。因此了解脚本缓存的工作原理是非常重要的。要了解有关缓存的更多信息,请参阅 脚本缓存。
Name(名称) | Required(必要的) | Default(默认值) | Description(描述) |
---|---|---|---|
lang |
no | "painless" | 脚本语言 |
file |
no | - | 要引用的脚本文件 |
id |
no | - | 要引用所存储的脚本 ID |
inline |
no | - | An inline script to be executed |
params |
no | - | 脚本参数 |
filed,id,inline 中的选项必须提供,为了正确的引用脚本以执行。
您可以通过使用 ctx
变量从脚本 context(上下文)中访问当前的 ingest document。
以下示例设置了一个名为 field_a_plus_b_times_c 的新字段,它是两个现有字段 filed_a 和 field_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
}
}
}