我正在构建搜索产品和变体。一种产品可以有许多嵌套变体。例如: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文档。但这不是我需要的,我需要它只计算主要产品文件。
我的查询有什么问题?
答案 0 :(得分:1)
想出来。在嵌套文档的映射中,我不得不添加"include_in_parent" => true