2012-02-01 66 views
0

我在使用Solr排序日期時出現了一個奇怪的問題。 事情是,當我排序它,沒關係,如果我們只有這樣的日期:01/01/2011,01/02/2011,01/03/2011使用Solr排序日期搞砸了一些日期

但如果我們有錯誤的日期類型錯誤:01/01/2011,01/02/2011,01/03/2011,01/04/0011和空值,那麼我們有一個問題 它混合了一切。

Solr的工作範圍是否存在?這不是一個無效的日期,它只是一個很久以前通過的日期,但仍然有效。

任何想法可能可以幫助我?

對不起,如果我沒有提供很多細節,我仍然使用它。別的,只要問一下,我會盡力詳細說明。

UPDATE

場就是這樣的schema.xml中

<field name="endDate" type="tdate" indexed="true" stored="true"/> 
+0

如果我理解正確,你想在開始時得到01/04/0011?你想要那個空值的地方? – Fuxi 2012-02-01 19:30:01

+0

空值應該在01/04/0011之前。是的,01/04/0011開頭 – pringlesinn 2012-02-01 20:18:20

+0

您可以添加模式的字段類型定義嗎? – Fuxi 2012-02-01 20:32:01

回答

5

如果沒有運行最新的Solr 3.5,你會打至少2條蟲子:) 但首先,讓失蹤(空)值,您可以嘗試設置:

sortMissingLast=false 
sortMissingFirst=true 

ontdate字段類型定義(SchemaXml Doc)。這是Solr的新功能,3.5 SOLR-2881

問題二是0001-1000年之間的日期,這是記錄爲問題SOLR-2772

更多版本:Apache Solr Release Notes

如果你正在運行的Solr的一些老版本,你不能升級,或者我的建議不適合你,總會有另一種方式:)重新編譯你的數據,但是作爲sint時間戳。

+0

我向經理提供了這個選項,讓我們看看他對此有何看法。非常感謝你!!一旦我們有答案,我會標記你的答案 – pringlesinn 2012-02-01 22:40:00