我想通过项目的查看次数来提升我的查询; 我想使用类似于view_count / max_view_count此目的的东西,以便能够测量项目的视图计数与索引中最大视图计数的关系.我知道如何使用函数查询来提升结果,但是如何轻松获得最大视图数?如果有人能提供一个例子,那将是非常有帮助的......
Bil*_*ber 11
solr中没有任何聚合函数,就像你从SQL中考虑它们一样.最简单的方法是分两步:
所以,像:
q=*:*&sort=view_count desc&rows=1&fl=view_count
Run Code Online (Sandbox Code Playgroud)
...获取具有最大view_count的项目,然后将其记录在某处
q=whatever&bq=div(view_count, max(the_max_view_count, 1))
Run Code Online (Sandbox Code Playgroud)
请注意,max()函数没有执行聚合最大值; 只获取传入的最大视图计数的最大值或1(以避免被零除错误).
如果您有一个multiValued字段(无法对其进行排序),您还可以使用StatsComponent获取最大值.无论哪种方式,您可能希望这样做一次,而不是每次查询(例如,每晚午夜或一旦您的数据集稳定下来).