我需要创建一个solr查询,根据每个产品的一组产品的最低价格来查询价格范围。
我们可以很容易地使用价格字段来确定镶嵌面范围,如下所示:
"facet":{
"price":{
"type":"range",
"field":"price",
"start":0,
"end":"2000",
"gap":"500",
"other":"after"
}
}
但这里的要求是,我们需要将价格与一组匹配产品的最低价格进行比较。意味着,对于id为1000的产品,将有n个匹配产品(如产品id 10011002、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
}
}
但问题是我们需要根据最低价格(产品的匹配产品(Tagmathedd))获得价格计算范围
如果你有办法解决这个问题,请告诉我。
暂无答案!
目前还没有任何答案,快来回答吧!