如何在solr中实现Time/(Distance)^2?

How to implement Time/(Distance)^2 in solr?

我想在 solr 中实现 Time/Distance^2。例如:

用户所在地是:BTM

问题 1: 5 小时前发布。与我所在地区的距离为 2 公里:5/4=1.25

问题 2 2 小时前发布。与我所在地区的距离为 4 公里:2/16=0.125

问题 3 4 小时前发布。与我所在地区的距离为 3 公里:4/9:0.44

现在,当我触发 solr 查询时,结果应根据 T/D^2 公式按以下顺序出现:

question1 then question3 and question1

您可以使用函数查询。参见 FunctionQuery

您可以按功能排序。 使用函数 div 和 pow.

sort=div(Time/pow(Distance,2)) asc

sort=div(Time/pow(Distance,2)) desc

您可以将函数添加到字段列表来调试函数:

fl=*,div(Time,pow(Distance,2))