簡體   English   中英

如何以編程方式創建Kibana(Elasticsearch)腳本字段?

[英]How to create a Kibana (Elasticsearch) Scripted Field programatically?

Kibana的UI允許用戶創建一個腳本化字段,該字段存儲為索引的一部分(下面的屏幕截圖)。 怎么能以編程方式完成? 特別是,使用NEST客戶端或Elasticsearch低級客戶端。

突出顯示了帶有腳本字段選項卡的Indice的Kibana UI

請注意,我不是要求如何創建添加表達式/腳本字段作為查詢的一部分,我特別在尋找如何在創建映射時將其添加為索引的一部分,以便查詢可以引用它而不必明確地包括它。

Kibana儀表板存儲在.kibana索引中。 要導出儀表板,您可以像查詢任何其他索引一樣查詢Kibana索引。 例如, curl -XGET http://localhost:9200/.kibana/_search?type=dashboard&pretty將顯示儀表板的JSON。 您可以導出模板,將腳本字段添加到JSON,然后再次POST。 由於Kibana使用標准的Elasticsearch索引,因此普通的Elasticsearch API將適用於修改Kibana儀表板。 可以提供更多的說明。

在撰寫本文時,當前版本5.2沒有正式的方法來執行此操作。

我是這樣做的:

  1. 獲取索引字段: GET /.kibana/index-pattern/YOUR_INDEX
  2. 將腳本字段添加到_source.fields (作為字符串,注意跳過引號)

     "fields":"[...,{\\"name\\":\\"test\\",\\"type\\":\\"number\\",\\"count\\":0,\\"scripted\\":true,\\"script\\":\\"doc['area_id'].value\\",\\"lang\\":\\"painless\\",\\"indexed\\":false,\\"analyzed\\":false,\\"doc_values\\":false,\\"searchable\\":true,\\"aggregatable\\":true}]" 
  3. 將_source json發回到/.kibana/index-pattern/YOUR_INDEX

     { "title":"YOUR_INDEX", "timeFieldName":"time", "fields":"[...,{\\"name\\":\\"test\\",...}]" } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM