当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch动态脚本已禁用

冯新知
2023-03-14

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

aggs:{
    total:{
        sum:{
            script: "doc['comments'].value + doc['likes'].value + doc['shares'].value"
        }   
    }
}

它引发以下异常:

ScriptException[动态脚本禁用]

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

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-sum-aggregation.html

共有1个答案

滕英奕
2023-03-14

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

<代码>脚本。禁用\u动态:false

参考:http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.5/modules-scripting.html#_enabling_dynamic_scripting

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

更新

对于ES版本1.6

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

script.inline: on
script.indexed: on

参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html#enable-动态脚本

 类似资料:
  • 问题内容: 我正在尝试对聚合执行以下查询: 并引发以下异常: 任何想法我该如何解决。参考: http://www.elasticsearch.org/guide/zh- CN/elasticsearch/reference/current/search-aggregations-metrics-sum- aggregation.html 问题答案: 默认情况下,elasticsearch中禁用动态

  • 问题内容: 我正在尝试根据文档中的值创建动态参数。 我到目前为止在这里尝试过 这引发了以下错误: 我想使参数动态化,以便doc值确定要扣除的值。 使用ElasticSearch 7.2 一个复杂而糟糕的方法是使用以下脚本 Es对象: 问题答案: 您需要尝试不使用单引号。

  • 嗨,我是ELK堆栈的新手。我使用Kibana4.1。我已经设法使用Elasticsearch查询DSL在Kibana的发现界面中运行搜索来捕获数据集,然后使用保存的搜索在Kibana中创建一个新的可视化和仪表板小部件。我的Elasticsearch查询看起来像 -this将捕获用户:joe的任何登录事件。如果我想搜索用户的登录事件:苏,我必须更改上面查询查询的这部分,使其看起来像 我被要求查看是否

  • 本文向大家介绍Python中的 ansible 动态Inventory 脚本,包括了Python中的 ansible 动态Inventory 脚本的使用技巧和注意事项,需要的朋友参考一下 1.Ansible Inventory  介绍; Ansible Inventory 是包含静态 Inventory 和动态 Inventory 两部分的,静态 Inventory 指的是在文件中指定的主机和组,

  • 问题内容: 当我添加行时,Elasticsearch-2.2.1不会启动 我elasticsearch.yml文件显示这里 是什么原因造成的? 问题答案: 检查说明以获取适当的版本。您为版本1.6提供的链接

  • 问题内容: 因此,我正在运行一个过程,这将需要几个小时才能完成。我想在完成后自动开始另一个过程。请注意,我无法在第一个脚本中添加对第二个脚本的调用,也无法创建依次运行两个脚本的另一个脚本。在Linux中有什么方法可以做到这一点吗? 编辑:一种选择是使用pgrep 每分钟轮询一次,并检查该过程是否完成。如果是这样,请启动另一个。但是,我不喜欢这种解决方案。 PS:两者都是bash脚本,如果有帮助的话