#solr #range #facet
Вопрос:
Мне нужно создать запрос solr для ценовых диапазонов по минимальным ценам набора продуктов для каждого продукта.
Мы можем легко сделать диапазон фасетов с помощью такого ценового поля, как это:
"facet":{
"price":{
"type":"range",
"field":"price",
"start":0,
"end":"2000",
"gap":"500",
"other":"after"
}
}
Но здесь требуется, чтобы мы сравнили цену с минимальной ценой набора подходящих продуктов. Это означает, что для продукта с идентификатором 1000 будет n совпадающих продуктов(скажем, идентификаторы продуктов 1001 1002, 1003 и т. Д.). Для каждого продукта нам нужно сравнить его с минимальной ценой этих подходящих продуктов.
Например, приведенный ниже запрос возвращает минимальную цену соответствующих товаров:
"query":"_text_:*",
"offset":0,
"limit":0,
"filter":["tagmacthedid:585200 || tagmacthedid:585226 || tagmacthedid:1197970"],
"facet":{
prices585226: {
type: query,
q: "tagmacthedid:585226",
facet: {
price_min:"min(price)",
price_max:"max(price)"
},
},
prices585200: {
type: query,
q: "tagmacthedid:585200",
facet: {
price_min:"min(price)",
price_max:"max(price)"
},
}
}
}
Это возвращает результирующий набор:
"facets": {
"count": 18,
"prices585226": {
"count": 14,
"price_min": 49.0,
"price_max": 2999.0
},
"prices585200": {
"count": 4,
"price_min": 175.0,
"price_max": 1075.0
}
}
Но проблема в том, что нам нужно получить диапазон подсчета цен на основе минимальной цены (соответствующих продуктов(tagmacthedid) для продукта).
Пожалуйста, дайте мне знать, если у вас есть идея решить эту проблему.
Комментарии:
1. Я не совсем уверен, каким вы хотите видеть конечный результат / чем он отличается от запроса, который вы показали. Может ли вам помочь анализатор запросов статистики?