Диапазон или отсутствует - ElasticSearch - Запрос DSL - PullRequest
0 голосов
/ 23 мая 2018

В настоящее время я пытаюсь вставить следующую логику в ES Query - существует ли http_code?если так, это должно быть между 400-600;но он также может отсутствовать.

Следующий запрос не работает, я считаю, что его необходимо изменить и исправить.

{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "http_code": {
              "gte": 400,
              "lt": 600
            }
          }
        },
        {
          "bool": {
            "should": [
              {
                "bool": {
                  "must_not": {
                    "exists": {
                      "field": "http_code"
                    }
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}

Первоначальное требование - сохранить фильтр в Кибана приборная панель с диапазоном 400-600 ИЛИ ее нет.

1 Ответ

0 голосов
/ 23 мая 2018

Чтобы выполнить предложенный вами запрос, вам нужно сделать что-то вроде этого:

The original requirement is to save a filter in a Kibana dashboard with range 400-600 OR it's missing. as:

{
  "query": {
    "bool": {
      "minimum_should_match": 1,
      "should": [
        {
          "range": {
            "http_code": {
              "gte": 400,
              "lt": 600
            }
          }
        },
        {
          "bool": {
            "must_not": {
              "exists": {
                "field": "http_code"
              }
            }
          }
        }
      ]
    }
  }
}
...