elastic search 里存在对象如下:Sku CarSpecs Id 101 Value 101001 Id 102 Value 102001 现在传入参数CarSpecs是个数组里面的对象结构是IdValue如下:要求SkuCarSpecs里每一个元素都必须在CarSpecs里找得到对应的对象才能满足
可以使用nested查询来实现。具体查询语句如下:
{
"query": {
"nested": {
"path": "Sku.CarSpecs",
"query": {
"bool": {
"must": [
{
"term": {
"Sku.CarSpecs.Id": 101
}
},
{
"term": {
"Sku.CarSpecs.Value": 101001
}
}
]
}
}
}
}
}
解析:
- 使用nested查询,指定路径为Sku.CarSpecs。
- 在query中使用bool查询,指定多个must条件。
- 第一个must条件使用term查询,指定Id为101。
- 第二个must条件使用term查询,指定Value为101001。
- 如果查询结果中存在Sku.CarSpecs中每个元素都能在CarSpecs中找到对应的对象,则满足查询条件
原文地址: https://www.cveoy.top/t/topic/dJtu 著作权归作者所有。请勿转载和采集!