ElasticSearch查询 - 存在但不包含

时间:2015-03-22 10:09:06

标签: elasticsearch contains exists

我正在尝试构建一个只有在包含某个字段时才会返回结果的查询但是只有当这些字段不等于特定值时才会返回结果。

我无法管理正确的语法:

POST webdata/interaction/_search
{
   "query": {
      "filtered": {
         "filter": {
            "exists": {
               "field": "mediaType"
            },
            "and": {
               "not" {
                   "term" : { "mediaType" : "none" }
               }
            }
         }
      }
   }
}

1 个答案:

答案 0 :(得分:5)

Bool Filtermustmust_not条款一起使用。

{
    "query": {
        "filtered": {
            "filter": {
                "bool": {
                    "must": {
                        "exists": {
                            "field": "mediaType"
                        }
                    },
                    "must_not": {
                        "term": {
                            "mediaType": "none"
                        }
                    }
                }
            }
        }
    }
}