原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/5.3/script-processor.html
译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=10028259
贡献者 : [那伊抹微笑],[ApacheCN],[Apache中文网]
可以在 ingestpipelines 中执行 inline,stored(存储),和 filescripts(文件脚本)。
请参阅 如何使用脚本 了解有关编写脚本的更多信息。ScriptProcessor(脚本处理器)利用编译脚本的缓存来提高性能。由于处理器中指定的脚本可能会把每个 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
}
}
}
内容来源于网络,如有侵权,请联系作者删除!