如何在solr中实现时间/(距离)^ 2?

时间:2015-10-31 11:06:13

标签: solr solrj solr5

我想在solr中实现Time/Distance^2。 e.g:

用户地点是:BTM

问题1:之前发布了5个小时。和我所在地的距离是2公里:5/4 = 1.25

问题2 之前发布了2小时。和我所在地的距离是4kms:2/16 = 0.125

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

现在,当我触发solr查询时,结果应该基于T/D^2公式按以下顺序排列:

question1 then question3 and question1

1 个答案:

答案 0 :(得分:2)

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

您可以通过该功能订购。 使用函数div和pow。

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

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

您可以将该功能添加到字段列表中以调试该功能:

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