我们使用Solr进行产品搜索。我们有两个价格领域,即。价格和publicPrice。 这是我的文档
{"docs":[{
"price":75.68,
"publicPrice":75.68,
"productID":100630,
}, {
"price":275,
"publicPrice":275,
"productID":100630,
},
{
"price":575,
"publicPrice":575,
"productID":100630,
},
{
"price":168,
"publicPrice":168,
"productID":105033,
},
{
"price":420.30,
"publicPrice":420.30,
"productID":105070,
},
{
"price":175.5,
"publicPrice":175.5,
"productID":105070,
}]
}
我在productID字段上使用分组,并且希望组中的publicPrice始终升序。因此,我进行了类似的组查询。
q=*:*&sort=price+asc&wt=json&indent=true&group=true&group.field=productID&group.ngroups=true&group.facet=true&group.limit=50&group.sort=publicPrice asc
结果看起来不错(100630(价格:75.68),105033(价格:168),105070(价格175.5))。
它完美地工作。但是,当我按降序对价格进行排序时,回报是意外的。
q=*:*&sort=price+desc&wt=json&indent=true&group=true&group.field=productID&group.ngroups=true&group.facet=true&group.limit=50&group.sort=publicPrice asc
结果看起来不错(100630(价格:75.68),105070(价格175.5),105033(价格:168))。
预期结果(105070(价格175.5),105033(价格:168),100630(价格:75.68))。
如果我按价格降序排序为什么会得到错误的订单?
基本上,我需要对已排序项目进行分组排序。这意味着我要先对普通文档进行排序,然后对组进行排序,然后再对分组文档进行排序。
有什么办法可以解决这个问题吗?