Kibana查询整个值的完全匹配

时间:2017-09-08 19:40:50

标签: elasticsearch kibana elastic-stack kibana-5

我有一系列带有字段App Version的记录,目前有两个可能的值:2.3.02.3.0 SP1。如果我尝试在开发者控制台中仅查询2.3.0,就像这样...

GET myindex/_search
{
  "query": {
    "match": {
      "App Version": "2.3.0"
      }
  }
}

它会返回所有记录,包括2.3.0 SP1 2.3.0记录。由于我的最终目标是仅使用App Version=2.3.0删除所有记录,因此我需要一些方法来过滤掉包含SP1的记录。我无法在任何地方找到强制完全匹配整个字符串的文档,而不仅仅是字符串的一部分。有什么想法吗?

编辑:如果有帮助,我正在运行Kibana 5.2.2。

1 个答案:

答案 0 :(得分:1)

对于完全匹配,您应在非分析字段(ES 2.X)或关键字字段(ES 5.X)上使用术语查询。但我想你必须改变映射。

我可以选择在bool query中合并两个或多个查询:

{
  "query": {
    "bool": {
       "must": [
          {
            "match": {
              "App Version": "2.3.0"
            }
          }
       ],
       "must_not": [
          {
            "match": {
              "App Version": "SP1"
            }
          }
       ]
    }
  }
}