如何在Kibana DevTools中组合多个查询,以便每个查询都得到一个结果?

时间:2019-10-16 09:28:10

标签: elasticsearch dsl

我正在尝试在Kibana DevTools中编写一个查询,该查询为每个查询提供一个匹配项。 假设我有要与特定值匹配的字段(field1,field2)。

如果找到任何这些字段的日志,我想为每个字段显示1个结果。我现在正在使用的显示1条记录的1条代码如下:

(我正在寻找在最近30分钟内创建的日志,并使用sort来获取最后一个日志)

GET default*/_search
{
  "size": 1,
  "query": {
    "bool": {
      "must": [
        {
      "query_string": {
        "query": "field1:somevalue*"}
    },
    {
      "range":{"@timestamp":{"gte": "now-30m"}}
    }
  ]
}
  },
  "sort" :{
        "@timestamp":{
          "order":"desc"
        }
      }
}

如何修改它以为每个字段(field1,field2)显示1个日志。应该看起来像这样:

GET default*/_search
{
  "size": 1,
  "query": {
    "bool": {
      "must": [
        {
      "query_string": {
        "query": "field1:somevalue*"}
    },
    {
      "range":{"@timestamp":{"gte": "now-30m"}}
    }
  ]
}
  },
  "sort" :{
        "@timestamp":{
          "order":"desc"
        }
      }
}
AND 
{
  "size": 1,
  "query": {
    "bool": {
      "must": [
        {
      "query_string": {
        "query": "field2:somevalue*"}
    },
    {
      "range":{"@timestamp":{"gte": "now-30m"}}
    }
  ]
}
  },
  "sort" :{
        "@timestamp":{
          "order":"desc"
        }
      }
}

上面的那个显然是行不通的,但是想形象化我的意思。 任何帮助表示赞赏


Val-以下是我正在尝试解决问题的错误的一些屏幕截图:

Image 1

Image 2

1 个答案:

答案 0 :(得分:0)

我建议使用multi search API

[['Pass', 'Fail', 'Pass', 'Fail', 'Pass', 'Fail', 'Fail'],
 ['Pass', 'Fail', 'Pass', 'Fail', 'Pass', 'Fail', 'Fail']]

在响应中,您将完全得到期望的结果,即每个查询的响应。