可以使用nested查询来实现这个需求。具体的查询语句可以如下所示:

{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "Sku.CarSpecs",
            "query": {
              "bool": {
                "must": [
                  {
                    "match": {
                      "Sku.CarSpecs.Id": "q.Id"
                    }
                  },
                  {
                    "match": {
                      "Sku.CarSpecs.Value": "q.Value"
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    }
  }
}

其中,nested查询用于查询Sku.CarSpecs数组中的元素,path参数指定了需要查询的嵌套路径。在nested查询的query参数中,使用bool查询来组合多个条件,其中包括两个match查询,分别用于匹配Id和Value字段,这两个字段的值需要与q数组中的对象相等。最后,将nested查询作为must查询的一部分,确保查询结果中的每个元素都必须满足这个条件

elastic search 里存在对象如下:Sku CarSpecs SkuCarSpecs里的对象结构是IdValue现在传入参数qq是个数组q里面的对象结构是IdValue如下:要求SkuCarSpecs里每一个元素都必须在q数组里找得到Id和Value相等的对象才能满足返回的条件应该如何写查询?

原文地址: https://www.cveoy.top/t/topic/dJtz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录