2012-11-13 530 views
1

我們通過日期範圍+/- 1個月的輸入日期查詢了solr結果。如果我進入2012年12月1日,我會得到一個結果集,從2012年11月1日到2013年1月1日。按日期差異對排序結果進行排序

這可以正常工作,但我們希望在輸入日期之後對日期差異進行排序。

例如,如果我們有日期:

2012年11月10日,2012-11-30,2012年12月3日,2012年12月10日

我們想要的結果排序是這樣的:

2012-11-30,2012年12月3日,2012年12月10日,2012年11月10日

任何想法如何在solr中完成此任務?

在此先感謝!

回答

5

您可以將&sort=sub(date_you_enter,date_fieldname_on_documents) asc參數添加到您的查詢中。基本sub函數將計算差異,然後您將能夠根據該結果進行排序。

參考你也可以檢查http://wiki.apache.org/solr/FunctionQuery頁面瞭解更多的功能,可以爲你

+0

感謝有用的,我發現這一點,但無法得到它的工作,現在我知道爲什麼... Solr的1.4 ^^需要升級第一。 – Dready

+1

終於我用ms函數來解決這個問題: &sort = abs(ms(date_you_enter,date_fieldname_on_documents))asc ms返回毫秒差值,abs返回前導符號 – Dready