2016-07-26 69 views
1

有没有一种方法可以在创建脚本字段时在“script”textarea中指定Groovy脚本文件名称。Kibana脚本字段中的Groovy脚本

enter image description here

Lucene的表达对场限制起到了很好的数值,但如何指定脚本文件名,并通过输入脚本文件?

我曾尝试给脚本文件名称如下,但它没有奏效。

{"script":{"file":"MyScript"},"lang":"groovy"} 

我也从docs的是,最新的弹性版本默认Lucene的表情,但我怀疑应该有指定的脚本类型的方式发现。

UPDATE:为了安全起见,从版本4.0.0-RC1, Kibana脚本字段都默认为Lucene的表情,不是Groovy中,作为 脚本语言。

有人可以让我知道,如果有可能,如果可能的话,那么这样做呢?

+0

目前无法选择所需的脚本语言,但这可能有所帮助:https://discuss.elastic.co/t/calling-groovy-script-from-kibana/2542/2 – Val

回答

1

以下说明适用于elasticsearch 2.x.

首先,你需要在elasticsearch.yml使Groovy的聚合脚本:

script.engine.groovy.indexed.aggs: true 
在可视化的相关属性的JSON输入

然后: enter image description here

最后,你需要把你的脚本中config/scripts文件夹

elasticsearch 
└── config 
    └── scripts 
     └── myscript.groovy 


经过上述更改,请不要忘记重新启动您的elasticsearch

+0

我试过了并没有奏效。 “发现:解析表达式失败:{”script“:{”file“:”MyScript“},”lang“:”groovy“}” – svjn

+0

@svjn我想你正在尝试添加'{“script” :直接在Kibana的“Settings-> your-index->​​ Scrtiped Fields”中直接使用{“file”:“MyScript”},“lang”:“groovy”}。取而代之的是(1)添加字段,但在此处保留“脚本”为空,(2)将脚本添加到可视化文件的“JSON输入”中。无论如何,我已经更新了我的答案。 – mrvincenzo

+0

+1 {'lang“:”groovy“}' - 如果在设置中直接配置脚本字段,这也是必需的。 – rudi