我正在搜索产品和变体。一种产品可以有许多嵌套变体。示例:1 件 T 恤有 2 种款式,白色 50 欧元,绿色 60 欧元。它仍然是相同的产品,应该在结果页面上显示一次。
这是我的映射:
{"product" => { "properties" => {"vendor_variants" => {"type" => "nested"}}}}
这是我正在做的查询:
"query" => {
"filtered" => {
"query" => {
"match_all" => {}
},
"filter" => {
"bool" => {
"must" => [
{
"terms" => {
"categories" => [122]
}
}
]
}
}
}
},
"facets" => {
"brand" => { "terms" => {"field" => "filter_brand"} },
"price_range" => {
"nested" => "vendor_variants",
"range" => { "field" => "price", "ranges" => [ {"to" => 2000}, {"from" => 2000, "to" => 5000} ]
}
}
}
此查询产生 172 个结果。但是价格范围的各个方面是完全错误的。例如,它返回 20-50 欧元范围内有 422 个结果。我相信这是因为它计算了每个嵌套的 vendor_variants 文档。但这不是我需要的,我需要它来仅计算主要产品文档。
我的查询有什么问题?