Я строю поиск продуктов и вариантов. Один продукт может иметь множество вложенных вариантов. Пример: 1 футболка может быть в 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. Но это не то, что мне нужно, мне нужно, чтобы он учитывал только основные документы продукта.
Что не так с моим запросом?