1

我想在 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中可能吗?

4

1 回答 1

0

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

您只需要执行 Solr 查询:-

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

或者

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

这将搜索苹果的制造字段,以降序返回按销售额排序的结果集并将行限制为 500。
获取 500 可能不是一个好主意,您始终可以使用行和限制进行分页。
在客户端可以处理仅显示 500 个结果的限制。

于 2012-12-09T09:21:41.720 回答