如何更改Kibana使用REST请求保存搜索(Discover)?

时间:2017-05-15 20:27:25

标签: rest elasticsearch kibana

我有查询在Kibana中搜索特定事件,此查询是保存在其他搜索中的,有没有办法可以通过例如REST调用以编程方式更改它?

2 个答案:

答案 0 :(得分:1)

所有内容都存储在.kibana索引中,您可以通过put request将设置更新为elasticsearch,但不建议这样做。
您可以在kibana/settings/objects

中修改已保存的搜索

答案 1 :(得分:1)

正如@Mohammad所说,与Kibana相关的所有元数据都存储在elasticsearch集群的.kibana索引下。所有搜索,可视化,仪表板都以.kibana索引的各自类型存储。例如,搜索存储在search索引中的.kibana类型下。

执行以下命令获取所有搜索:

GET /.kibana/search/_search
{
  "query": {
    "match_all": {}
  }
}

从上述结果中检索要更新查询的search-id

现在,您可以使用search API更新该特定_update文档,如下所示:

POST /.kibana/search/<search-id>/_update
{
   "doc" : {
      "kibanaSavedObjectMeta":{ "searchSourceJSON": """{"index":"test-*","query":{"query_string":{"query":"id:2","analyze_wildcard":true}},"filter":[],"highlight":{"pre_tags":["@kibana-highlighted-field@"],"post_tags":["@/kibana-highlighted-field@"],"fields":{"*":{}},"require_field_match":false,"fragment_size":2147483647}}"""
   }
   }
}

如果您不是高级用户,请考虑来自Kibana的以下警告消息:

  

谨慎行事!

     

修改对象仅适用于高级用户。对象属性是   未经验证且无效的对象可能导致错误,数据丢失或   更差。除非有熟悉代码的人告诉你   在这里,你可能不应该。