elastic search 里存在对象如下:Sku CarSpecs SkuCarSpecs里的对象结构是IdValue现在传入参数CarSpecs是个数组里面的对象结构是IdValue如下:要求SkuCarSpecs里每一个元素都必须在CarSpecs里找得到对应的对象才能满足返回的条件应该如何写查询?
可以使用nested查询来实现这个需求,具体查询语句如下:
{
"query": {
"nested": {
"path": "Sku.CarSpecs",
"query": {
"bool": {
"must": [
{"match": {"Sku.CarSpecs.Id": "1"}},
{"match": {"Sku.CarSpecs.Value": "value1"}}
]
}
}
}
}
}
其中,"path": "Sku.CarSpecs"表示查询的嵌套字段路径,"query"里的bool查询表示必须同时匹配CarSpecs中的Id和Value。如果需要查询多个CarSpecs,可以将bool查询中的must改为should。
原文地址: https://www.cveoy.top/t/topic/dJtx 著作权归作者所有。请勿转载和采集!