当前位置: 首页 > 面试题库 >

Elasticsearch动态脚本已禁用

衡丰茂
2023-03-14
问题内容

我正在尝试对聚合执行以下查询:

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

并引发以下异常:

ScriptException[dynamic scripting disabled]

任何想法我该如何解决。参考:

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


问题答案:

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

script.disable_dynamic: false

请参阅:http :
//www.elasticsearch.org/guide/zh-CN/elasticsearch/reference/1.5/modules-
scripting.html#_enabling_dynamic_scripting

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

更新

对于ES版本1.6+

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

script.inline: on
script.indexed: on

请参阅:https : //www.elastic.co/guide/zh-
CN/elasticsearch/reference/current/modules-scripting.html#enable-dynamic-
scripting



 类似资料:
  • 我正在尝试以下关于聚合的查询: 它引发以下异常: 你知道我该怎么解决这个问题吗。参考: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-sum-aggregation.html

  • 问题内容: 我正在尝试根据文档中的值创建动态参数。 我到目前为止在这里尝试过 这引发了以下错误: 我想使参数动态化,以便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脚本,如果有帮助的话