多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Script Processor(脚本处理器) 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/script-processor.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/script-processor.html) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10028259](http://www.apache.wiki/pages/viewpage.action?pageId=10028259) 贡献者 : [那伊抹微笑](/display/~wangyangting),[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina) 可以在 **ingest** **pipelines** 中执行 **inline**,**stored**(存储),和 **file** **scripts**(文件脚本)。 请参阅 [如何使用脚本](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/modules-scripting-using.html "如何使用脚本") 了解有关编写脚本的更多信息。**Script** **Processor**(脚本处理器)利用编译脚本的缓存来提高性能。由于处理器中指定的脚本可能会把每个 **document**(文档)给重新编译。因此了解脚本缓存的工作原理是非常重要的。要了解有关缓存的更多信息,请参阅 [脚本缓存](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/modules-scripting-using.html#modules-scripting-using-caching "脚本Cachingedit")。 ## 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** | **-** | 脚本参数 | **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 } } } ```