Join 限制solr子查询/联接上的行

Join 限制solr子查询/联接上的行,join,solr,subquery,Join,Solr,Subquery,我想在solr上实现一个搜索,搜索500种畅销产品,然后只对这500种产品进行搜索/筛选 在SQL中,我会这样做: SELECT * FROM Product WHERE ProductID IN (SELECT TOP 500 ProductID FROM Product ORDER BY Sales DESC) AND Manufacturer = 'Apple' 我知道我可以在solr中执行join/subquery,但在将这些子查询的行输入到主查询之前,我似乎不知道如何对它们进行排序和

我想在solr上实现一个搜索,搜索500种畅销产品,然后只对这500种产品进行搜索/筛选

在SQL中,我会这样做:

SELECT * FROM Product
WHERE ProductID IN (SELECT TOP 500 ProductID FROM Product ORDER BY Sales DESC)
AND Manufacturer = 'Apple'
我知道我可以在solr中执行join/subquery,但在将这些子查询的行输入到主查询之前,我似乎不知道如何对它们进行排序和限制


这在solr中可能吗?

您可能不需要任何联接或子查询。
您可以使用销售信息为产品编制索引

您只需要执行Solr查询:-

q=manufacturer:apple&sort=sales desc&limit=500

这将搜索apple的manufacture字段,按降序返回sales订购的结果集,并将行数限制为500。
获取500可能不是一个好主意,您可以始终使用行和限制进行分页。

在客户端只能显示500个结果的限制可以处理。

是的-我当然可以这样做。但是,我实际上是在寻找前500名的产品,然后对其进行筛选,因此根据我选择的过滤器,最终的列表可能只有50个,例如,Nope Solr没有这样的功能。不过,您可以修改源代码以限制结果的数量。
fq=manufacturer:apple&sort=sales desc&limit=500