2015-10-31 43 views
2

我想要在solr中實現Time/Distance^2。例如: -如何在solr中實現時間/(距離)^ 2?

用戶局部性:BTM

問題1: 5小時前發佈。距離我的地區是2kms:5/4 = 1.25

問題2發佈前2小時。距離本地4kms:2/16 = 0.125

問題3已於4小時前發佈。從我的地方距離3kms:4/9:0.44

現在,當我火Solr的查詢,結果應基於T/D^2公式來按以下順序:

question1 then question3 and question1 

回答

2

你可以使用函數查詢。請參閱FunctionQuery

您可以通過該功能進行訂購。 使用函數div和pow。

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

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

您可以將功能添加到字段列表調試功能:

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