ElasticSearch8.9中过滤上下文缺失子句的替代方案是什么?

p1tboqfb  于 8个月前  发布在  ElasticSearch
关注(0)|答案(2)|浏览(86)

下面同样的语法在2.3 v中已经工作了,如果我在8.9 v中执行它就不工作了。

{
    "size": 0,
    "query": {
    "bool": {
    "filter": [
                {
                    "missing": { //"reason": "unknown field [missing]"
                        "field": "lst_act_date"
                    }
                }
            ]
           }
          }
        }
falq053o

falq053o1#

missing查询在ES 2.2.0中已被弃用。你现在需要使用bool/must_not/exists组合:

{
  "size": 0,
  "query": {
    "bool": {
      "must_not": [
        {
          "exists": {
            "field": "lst_act_date"
          }
        }
      ]
    }
  }
}
pw9qyyiw

pw9qyyiw2#

{
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "must_not": [
              {
                "exists": {
                  "field": "lst_act_date"
                }
              }
            ]
          }
        }
      ]
    }
  }
}

即使使用过滤器/bool/must_not/exists也可以工作。

相关问题