elasticsearch Elasticsearch动态脚本已禁用,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch动态脚本已禁用,elasticsearch,elasticsearch" />

elasticsearch Elasticsearch动态脚本已禁用

elasticsearch Elasticsearch动态脚本已禁用,elasticsearch,elasticsearch,我正在尝试以下有关聚合的查询: aggs:{ total:{ sum:{ script: "doc['comments'].value + doc['likes'].value + doc['shares'].value" } } } 它抛出以下异常: ScriptException[禁用动态脚本] 你知道我该怎么解决这个问题吗。参考: 默认情况下,elasticsearch中禁用了动态脚本,我们需要在elastic

我正在尝试以下有关聚合的查询:

aggs:{
    total:{
        sum:{
            script: "doc['comments'].value + doc['likes'].value + doc['shares'].value"
        }   
    }
}
它抛出以下异常:

ScriptException[禁用动态脚本]

你知道我该怎么解决这个问题吗。参考:


默认情况下,elasticsearch中禁用了动态脚本,我们需要在elasticsearch.yml文件中添加以下行:

script.disable\u动态:false

参考:

此外,我们还需要确保在启用动态脚本时,elasticsearch端口不是公共的。特别是节点用于通信的端口。(默认为9300) 否则,它存在安全漏洞,允许攻击者加入群集并进行端口扫描或进行DDOS攻击

更新

对于ES版本1.6+

通过需要添加到每个节点上的config/elasticsearch.yml文件中的以下设置,可以根据脚本源为每个脚本引擎启用脚本

script.inline: on
script.indexed: on

请参阅:

该设置在elasticsearch 2.0中不再被识别。相反,请使用:
script.inline:on script.indexed:on
Im仍然无法运行函数\u分数查询,即使进行了这些更改,我始终会遇到以下错误:解析失败[元素[function\u分数]没有解析器]。有什么想法吗?也许吧。你能谈谈你的具体问题吗?如果你发布一个关于它的新问题并在评论中添加指向该问题的链接,效果会更好。我使用ElasticSearch 1.4.4:我添加了三行(
script.disable\u dynamic:false
script.inline:on
script.indexed:on
),但它仍然不起作用。错误消息:
类型为[inline]、操作[search]和lang[python]的脚本被禁用
。。。知道吗?@cherah30 ElasticSearch 1.4.4?我的想法是升级!对于Elasticsearch 2.x.x,请使用
script.inline:on
script.indexed:on