web-dev-qa-db-ja.com

elasticsearch / kibana 4:フィールドは存在するが値と等しくない

elasticsearchバージョン1.4.5

キバナ4.1.1

logstash 1.5.2-1

フィールドが存在するが特定の値と等しくない場合にのみ結果を返すkibana 4のディスカバータブで検索を構成するにはどうすればよいですか?

LogstashにApacheログデータがいくつかあり、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 querys への参照もありますが、それらをkibana検索バーで使用できるものに変換する方法がわかりません。以下に例を示します。

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

ありがとう!

28
Peter M

探しているクエリは次のとおりです。

_exists_:status_code AND NOT status_code:200

このリンク は、クエリ文字列クエリでサポートされているものをすべて表示します。

54
Val

前の答えはまさに私が求めていたものですが、これも有用です:

 status_code:[300 TO 600]
5
Peter M