如何启用内联(沙盒)groovy脚本?

时间:2016-02-10 11:06:47

标签: elasticsearch

我正在尝试使用此示例脚本查询:

POST /_search
{
    "script_fields": {
        "my_field": {
            "script": "1 + my_evar",
            "params": {
              "my_evar": 2
            }
        }
    }
}

会导致以下错误消息:

  

“reason”:“[inline],operation [search]和lang [groovy]类型的脚本被禁用”

我尝试使用弹性搜索配置的这一点来启用脚本:

script.inline: true
script.indexed: true
script.search: true
script.update: true
script.mapping: true
script.groovy.sandbox.enabled: true

我错过了一个设置吗?

3 个答案:

答案 0 :(得分:7)

elasticsearch.yml 中设置以下内容对我有用。

script.engine.groovy.inline.search: on

答案 1 :(得分:4)

谢谢@Richa,我实际上尝试了但是我收到了这个错误

  

script.disable_dynamic不是受支持的设置,请替换为细粒度的脚本设置。   通过将script.disable_dynamic: false替换为script.inline: onscript.indexed: on

,可以为所有语言和所有操作启用动态脚本

然后我尝试了这三个设置并且运行正常。

答案 2 :(得分:1)

使用此设置:

script.disable_dynamic: false