在使用用Groovy脚本运行局部更新,例如:
curl -XPOST 'http://localhost:9200/website/blog/1/_update' -d '{"script":"ctx._source.views+=1"}'
结果会报错:
{
"error": "ElasticsearchIllegalArgumentException[failed to execute script]; nested: ScriptException[scripts of type [inline], operation [update] and lang [groovy] are disabled]; ",
"status": 400
}
报错的原因是,脚本默认被禁用了。https://www.elastic.co/blog/elasticsearch-1-4-3-and-1-3-8-released
解决的方法是:
1.在安装目录下config文件夹找到elasticsearch.yml文件,然后添加:script.groovy.sandbox.enabled: true
2.重启
再次运行上面的更新命令就可以成功。
注意:2.x的版本还要加上
script.engine.groovy.inline.update: on