首页 > Elasticsearch 怎么执行 and 条件的 in 查询?

Elasticsearch 怎么执行 and 条件的 in 查询?

存储结构是这样的:

{
    "key":[1,2,3,4]
}

要求查出key中同时存在 1 和 4 的数据。

使用filtered.filter.terms.keyOR不是AND逻辑,不满足需求。

暂时使用的是 must方法拼接多个参数搞定了AND查询,问题是怎么简化DSL……

array (size=2)
  'query' => 
    array (size=1)
      'bool' => 
        array (size=1)
          'must' => 
            array (size=4)
              0 => 
                array (size=1)
                  'term' => 
                    array (size=1)
                      'x' => string '7' (length=1)
              1 => 
                array (size=1)
                  'term' => 
                    array (size=1)
                      'enable' => int 1
              2 => 
                array (size=1)
                  'range' => 
                    array (size=1)
                      'stock' => 
                        array (size=1)
                          'gt' => int 0
              3 => 
                array (size=1)
                  'term' => 
                    array (size=1)
                      'ids' => int 75
  'size' => int 1

用in查询,比如:

{
  "query" : {
    "filtered" : {
      "filter" : {
        "terms" : {
          "key" : [1, 4]
        }
      }
    }
  }
}
【热门文章】
【热门文章】