Подтвердить что ты не робот

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

elasticsearch версия 1.4.5

kibana 4.1.1

logstash 1.5.2-1

Как структурировать поиск на вкладке обнаружения 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 завитки запросов, но я не уверен, как превратить их во что-то, что я могу использовать в панели поиска kibana. Вот пример:

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

Спасибо!

4b9b3361

Ответ 1

Запрос, который вы ищете, следующий:

_exists_:status_code AND NOT status_code:200

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

Ответ 2

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

 status_code:[300 TO 600]