可以使用nested查询来实现。具体查询语句如下:

{
  "query": {
    "nested": {
      "path": "Sku.CarSpecs",
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "Sku.CarSpecs.Id": 101
              }
            },
            {
              "term": {
                "Sku.CarSpecs.Value": 101001
              }
            }
          ]
        }
      }
    }
  }
}

解析:

  1. 使用nested查询,指定路径为Sku.CarSpecs。
  2. 在query中使用bool查询,指定多个must条件。
  3. 第一个must条件使用term查询,指定Id为101。
  4. 第二个must条件使用term查询,指定Value为101001。
  5. 如果查询结果中存在Sku.CarSpecs中每个元素都能在CarSpecs中找到对应的对象,则满足查询条件
elastic search 里存在对象如下:Sku CarSpecs Id 101 Value 101001 Id 102 Value 102001 现在传入参数CarSpecs是个数组里面的对象结构是IdValue如下:要求SkuCarSpecs里每一个元素都必须在CarSpecs里找得到对应的对象才能满足

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

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