Как я могу объединить несколько запросов в Kibana DevTools, чтобы получить один результат для каждого? - PullRequest
1 голос
/ 16 октября 2019

Я пытаюсь написать запрос в Kibana DevTools, который дал бы мне одно совпадение для каждого запроса. Допустим, у меня есть поля (field1, field2), которые я хочу сопоставить с определенным значением.

Я хочу отобразить 1 результат для каждого поля, если для какого-либо из этих полей были найдены какие-либо журналы. Код, который я сейчас использую и отображающий 1 журнал для 1 поиска, приведен ниже:

(я ищу журнал, созданный за последние 30 минут, и использую сортировку, чтобы получить последний)

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

Как я могу изменить его для отображения 1 журнала для каждого поля (field1, field2). Должно выглядеть примерно так:

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 - вот несколько скриншотов с ошибкой, которую я получаю, пытаясь найти решение:

Изображение 1

Изображение 2

1 Ответ

0 голосов
/ 16 октября 2019

Я предлагаю использовать многопользовательский API :

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

В ответ вы получите именно то, что ожидаете, то есть ответ на каждый запрос.

...