2012-10-11 23 views
1

我正在嘗試在solr中搜索,結果必須先在日期和名稱字段中排序。我可以得到預期的結果,因爲日期格式爲:2012-09-07T13:31:35ZSolr:在多個文件上排序,其中之一是日期

查詢是這樣的:

sort=date+desc,name+desc 

我不想按時完成排序也。

+0

什麼是日期格式的問題? – Jayendra

+0

@Jayendra:由於時間附有它,所以當我使用該字段和名稱字段對列表進行排序時,名稱字段排序並不重要,因爲即使它們在同一日期,沒有兩個名稱的時間完全相同。 – user1737619

回答

1

您可以在日期使用功能,例如你的情況

sort=floor(div(ms(date),86400000))+desc,name+desc 

注意,這需要dynamicField通配符沒有設置被忽略,即以下行schema.xml中應該不存在,如果是,那麼你就需要把它註釋掉或用一些數字類型,然後才能進行排序如上

<dynamicField name="*" type="ignored" multiValued="true" /> 
+0

Thnx很多工作:) – user1737619

0

另一種選擇也將存儲日期部分的數字表示(即時間戳,從在過去的某個日期,直到文檔的日期秒上午12點)。
如果你遵循時間戳的通用標準,應該很容易維護,查詢和從時間戳轉換到日期,反之亦然。