Elasticsearch判断多列存在、bool条件组合查询示例

and符号判断多列存在:{
  "filter": {
    "and": [
      {
        "exists": {
          "field": "sid"
        }
      },
      {
        "exists": {
          "field": "level"
        }
      }
    ]
  }
}

bool组合

{
  "filter": {
    "and": [
      {
        "or": [
          {
            "match_phrase": {
              "displayname": "s"
            }
          },
          {
            "match_phrase": {
              "displayname": "l"
            }
          }
        ]
      },
      {
        "match_phrase": {
          "displayname": "a"
        }
      },
      {
        "not": {
          "match_phrase": {
            "displayname": "p"
          }
        }
      }
    ]
  }
}

注:类似的and符号替换成 bool must实际上结果是一样的;目前ElasticSearch官方推荐写法是使用bool替代之前的and or语句。

posted on 2016-05-28 13:29  Anthony.Zhao  阅读(1129)  评论(0编辑  收藏  举报