我在聚合上尝试以下查询:
aggs:{
total:{
sum:{
script: "doc['comments'].value + doc['likes'].value + doc['shares'].value"
}
}
}
Run Code Online (Sandbox Code Playgroud)
并抛出以下异常:
ScriptException[dynamic scripting disabled]
知道如何解决这个问题.参考:
Sam*_*rma 51
默认情况下,弹性搜索中禁用动态脚本,我们需要在elasticsearch.yml文件中添加以下行:
script.disable_dynamic: false
请参阅:http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.5/modules-scripting.html#_enabling_dynamic_scripting
此外,我们需要确保在启用动态脚本时,elasticsearch端口不公开.特别是节点用于通信的端口.(默认为9300)否则它存在安全漏洞,允许攻击者加入群集并进行端口扫描或进行DDOS攻击.
UPDATE
对于ES版本1.6+
通过以下需要添加到每个节点上的config/elasticsearch.yml文件的设置,可以为每个脚本引擎启用基于其源的脚本.
script.inline: on
script.indexed: on
Run Code Online (Sandbox Code Playgroud)
请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html#enable-dynamic-scripting
归档时间: |
|
查看次数: |
21705 次 |
最近记录: |