我们有一位客户要求以公平,公正的方式返回其搜索页面中的结果。从本质上讲,退回的产品是“假日套餐”。每个产品都由不同的供应商列出,并且由于市场的股东是供应商,因此他们绝对不能显示出对任何特定供应商的偏好。 (即,无论实际库存/产品的优点如何,每个人都需要有相同的曝光量)
我们一直在做的只是随机化,但是真正随机的问题是,一个有100个软件包的供应商,在搜索结果页面上有12个其他每个都有1个软件包的供应商,只是不显示。在最坏的情况下,我们的供应商拥有大约7000个包装,而该类别中的其他供应商只有1或2种产品。因此,真正的随机意味着其他供应商完全被淹没了。我们克服这个问题的方法是增加所有其他供应商,但是然后这个拥有7000个软件包的供应商要等到所有其他产品都上市后才能显示出来。
因此,总而言之,我们要努力实现公平,公正的分类,以便在退回其他供应商的其他产品之前,先退回每个供应商的至少一种产品。一旦其他产品退货,那将是公平的游戏……
答案 0 :(得分:1)
Lucene中有一些东西可以处理非常相似的东西:“最多显示该字段中每个键的X个文档” DiversifiedTopDocsCollector。看来您想“至少显示该字段中每个键的X个文档”。
我想如果现有的收集器不够好,您可以对其进行修改以实现所需的功能。问题是,在Solr中实现此收集器所需的代码尚未放置到位...因此您也需要这样做。
如上所述,另一种方法是尝试通过折叠/分组来完成此操作。