需要从弹性搜索上的 AND、OR 过滤器升级到 ES7 的布尔查询

need to upgrade from AND, OR filters on elasticsearch to boolean queries for ES7

我正在尝试更新一个在 ElasticSearch 2 上可行但在 ES7 中不存在的查询。 这是下面的查询:

{
"filter":
  {
  "and":[
     {
      "or":[
        { 
         "range":
          {
           "date_of_birth":
             {
             "lte": 5
             }
           }
         },
          {
           "range":
              {
              "age":{
                   "gte": 15
                    }
              }
            }]
       },{
         "range":
          {
            "begin_time":
              {
               "lte": 23
              }
           }
        }]
    } 
}            

我知道我应该使用布尔查询,但因为它是一个过滤器,所以我很困惑,非常感谢你的帮助:)

好了,只需将 and 替换为 bool/filter,将 or 替换为 bool/should

{
  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "should": [
              {
                "range": {
                  "date_of_birth": {
                    "lte": 5
                  }
                }
              },
              {
                "range": {
                  "age": {
                    "gte": 15
                  }
                }
              }
            ]
          }
        },
        {
          "range": {
            "begin_time": {
              "lte": 23
            }
          }
        }
      ]
    }
  }
}