对 ES 进行搜索时未知查询 [已过滤]

Tom*_*Tom 5 elasticsearch

我是 ES 新手,我正在使用 ES 7.10.1,我有以下简单的搜索请求:

GET /megacorp/_doc/_search
    {
        "query":{
            "filtered":{
                "filter":{
                    "range":{
                        "age":{
                            "gt":30
                        }
                    }
                },
                "query":{
                    "match":{
                        "last_name":"smith"
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我在Kibana Dev Tools中运行上述查询(使用查询和过滤器)时,出现如下异常,请问如何解决这个问题,谢谢。

{
  "error" : {
    "root_cause" : [
      {
        "type" : "parsing_exception",
        "reason" : "unknown query [filtered]",
        "line" : 3,
        "col" : 14
      }
    ],
    "type" : "parsing_exception",
    "reason" : "unknown query [filtered]",
    "line" : 3,
    "col" : 14,
    "caused_by" : {
      "type" : "named_object_not_found_exception",
      "reason" : "[3:14] unknown field [filtered]"
    }
  },
  "status" : 400
}
Run Code Online (Sandbox Code Playgroud)

ESC*_*der 12

过滤查询已被弃用。您现在应该使用布尔查询。将您的搜索查询修改为 -

 {
  "query": {
    "bool": {
      "must": {
        "match": {
          "last_name": "smith"
        }
      },
      "filter": {
        "range": {
          "age": {
            "gt": 30
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)