我想在solr上实现搜索500个畅销产品的搜索,然后仅对这500个产品进行搜索/过滤
在SQL中,我会做这样的事情:
SELECT * FROM Product
WHERE ProductID IN (SELECT TOP 500 ProductID FROM Product ORDER BY Sales DESC)
AND Manufacturer = 'Apple'
我知道我可以在solr中进行连接/子查询,但我似乎无法解决如何在将这些子查询的行输入主查询之前对其进行排序和限制。
这在solr中是否可行?
答案 0 :(得分:0)
您可能不需要任何联接或子查询 您可以使用销售信息为产品编制索引。
您只需要执行Solr查询: -
q=manufacturer:apple&sort=sales desc&limit=500
OR
fq=manufacturer:apple&sort=sales desc&limit=500
这将在制造字段中搜索apple,按降序返回销售订单的结果集,并将行限制为500.
获取500可能不是一个好主意,你可以随时对行和限制进行分页
只能显示500个结果的限制可以在客户端处理。