solr根据分布得到结果

luc*_*one 5 solr distribution

有没有办法synopsis根据其中一个索引字段的某些分布来获得结果?

例如,假设我有一个书籍目录"synopsis""publication_year"和"genre".我想构建一个查询,根据"概要"返回最相关的结果,有利于最近出版的书籍.然而,在最终结果中(假设为1000)我希望根据某些给定的分布尽可能地分布该类型,例如:50%的科幻小说,25%的非小说,10%的政治等等. .

我知道我可以得到一个大的结果集,并做一些加权的水库采样,以获得最终的1000本书在solr之外,但我正在寻找一个只有solr的解决方案.

这可能吗?如果没有,您对如何解决这个问题有任何建议吗?

Mat*_*ndh 0

虽然您无法插入您的发行版,但您可以使用折叠和展开结果分组来获取每种类型的 n 个结果。然后,您可以忽略返回的任何高于该组阈值的结果。

您必须将每个组的文档数量设置为命中总数分布中的最大存储桶大小,即上面示例中的 500。这可以为您提供大量可供使用的文档,因此我会尝试保留返回的总数。至少在开始时类型相当小。

可能有某种方法可以通过扩展上述两个功能之一并添加您自己的代码来限制每种类型收集的文档数量,从而使组大小更加动态。