首页 文章

solr根据分布得到结果

提问于
浏览
5

solr 中是否有办法根据某个索引字段的某些分布得到结果?

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

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

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

1 回答

  • 0

    虽然您将无法插入您的发行版,但您可以使用Collapse and ExpandResult Grouping为每种类型获取n个结果 . 然后,您将忽略超过该组阈值的任何结果 .

    您必须将每个组的文档数量设置为总点击数的分配中的最大存储区大小,即上例中的500 . 这可以为您提供一组非常大的文档,因此我会尝试保留返回的总数 . 至少在开始时类型相当小 .

    通过扩展上述两个功能中的任何一个并添加自己的代码来限制每个类型收集的文档数量,可能有一些方法可以使组大小更具动态性 .

相关问题