2016-07-26 281 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