elasticsearch / kibana 4: поле существует, но не равно значению

elasticsearch версии 1.4.5

платформы Kibana 4.1.1

logstash 1.5.2-1

как структурировать поиск на вкладке discover kibana 4, который возвращает результаты, только если поле существует, но не равно определенному значению?

у меня есть некоторые данные журнала Apache в logstash и я хочу вернуть все записи, которые status_code определено, но не равно 200. Поэтому, если возможные значения {undefined, 200, 403, 404, 500 и т. д.}, Я бы хотелось бы видеть все варианты ошибок 4xx и 5xx, но не сообщения, где поле не определено и не установлено в 200.

я попробовал следующее:

+status_code: (*) -status_code: (200)

((status_code: (*) AND NOT status_code: (200))

Я также вижу ссылки на elasticsearch curl запросы но я не уверен, как превратить их в то, что я могу использовать в строке поиска kibana. Вот пример:

{
  "query": {
    "constant_score": {
      "filter": {
        "bool": {
          "must": {
            "exists": {
              "field": "status_code"
            }
          },
          "must_not": {
            "term": {
              "status_code": '200'
            }
          }
        }
      }
    }
  }
}

спасибо!

2 ответов


запрос, который вы ищете это:

_exists_:status_code AND NOT status_code:200

этой ссылке показывает вам все, что поддерживается запросами строки запроса.


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

 status_code:[300 TO 600]