我正在寻找一种将随机噪音引入我的评分函数的方法,我对如何最好地进行操作感到茫然。
一些背景知识:
我们将Solr用于管理代理商的大量照片的Web应用程序。
一位客户对得分有一个有趣的要求:
然而,由于照片市场如何运作,这可能会导致许多类似的照片出现在一起。 他们的要求是给予“质量”一个很大的提升,但引入一些随机性,以便照片不会出现严格的日期顺序。
有什么想法吗?
编辑:一个关键要求是拥有“稳定”的查询结果:如果我搜索两次“热带岛屿”我可以得到一个略有不同的结果集,但如果我要求第一页,那么第二页,那么首先,我最好得到相同的结果:)
答案 0 :(得分:2)
您可以使用FunctionQueries执行此操作。对于每张照片,添加一个随机数接近1的字段(例如0.99,1.02),并在产品函数查询中使用它来改变“自然”分数。
答案 1 :(得分:2)
原来我解决问题的第一种方法是正确的,我有一个简单的实现错误。如果它有助于其他人:
RandomSortField确实具有我需要的特性(即,为同一查询返回可重复的结果)。 暂且不谈FunctionQuery,即使是一些微不足道的事情:
sort=quality_i asc, date_d desc, random_12345 desc
将接近我的要求。
然而,当使用太阳黑子红宝石时,没有办法传递种子,而这就是我之前欺骗的原因:我每次都使用不同的种子,因此变得“真实”随机结果。