elasticsearch / kibana 4:字段存在但不等于值

elasticsearch / kibana 4: field exists but is not equal to a value

弹性搜索版本 1.4.5

kibana 4.1.1

logstash 1.5.2-1

如何在 kibana 4 的“发现”选项卡中构建搜索,如果某个字段存在但不等于特定值,则只有 return 个结果?

我在 logstash 中有一些 apache 日志数据,我想 return 所有定义了 status_code 但不等于 200 的条目。因此,如果可能的值为 {undefined, 200, 403 , 404, 500, etc} 我希望看到 4xx 和 5xx 错误的所有变体,而不是未定义字段且未设置为 200 的消息。

我试过以下方法:

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

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

我也看到了对 elasticsearch curl queries 的引用,但我不确定如何将它们变成我可以在 kibana 搜索栏中使用的东西。这是一个例子:

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

谢谢!

您要查询的是这个:

_exists_:status_code AND NOT status_code:200

This link 向您展示查询字符串查询支持的所有内容。

之前的答案正是我所要求的,但是,这也很有用:

 status_code:[300 TO 600]