Elasticsearch 1.3.8使用groovy脚本文件进行转换

时间:2015-03-10 20:26:29

标签: elasticsearch

由于ES 1.3.4存在安全漏洞,我们升级到ES 1.3.9,禁用动态groovy脚本,因此映射转换失败并显示错误消息" [groovy]的动态脚本已禁用&# 34 ;.我通过将脚本外部化到脚本文件来尝试https://www.elastic.co/guide/en/elasticsearch/reference/1.3/modules-scripting.html中的方法,但是没有调用脚本文件或转换不起作用。我们如何使用脚本文件实现转换

映射文件转换如下:

"transform" : [{
      "script" : "ctx._source['downloadCountInt'] = (ctx._source['downloadCount']==null)? ctx._source['downloadCount'] : ctx._source['downloadCount'].replaceAll(/\\D/, '');",
      "lang" : "groovy"
    }]

尝试将脚本ctx._source['downloadCountInt'] = (ctx._source['downloadCount']==null)? ctx._source['downloadCount'] : ctx._source['downloadCount'].replaceAll(/\\D/, '');放入名为" transform_download_count.groovy"的脚本文件中。在/etc/elasticsearch/scripts/transform_download_count.groovy中,日志消息显示它已正确编译但从未调用转换。

1 个答案:

答案 0 :(得分:0)

使用脚本文件/etc/elasticsearch/scripts/transform_download_count.groovy,尝试:

"transform" : {
  "script_file" : "transform_download_count",
  "lang" : "groovy"
}