我正在嘗試在solr中搜索,結果必須先在日期和名稱字段中排序。我可以得到預期的結果,因爲日期格式爲:2012-09-07T13:31:35Z
。Solr:在多個文件上排序,其中之一是日期
查詢是這樣的:
sort=date+desc,name+desc
我不想按時完成排序也。
我正在嘗試在solr中搜索,結果必須先在日期和名稱字段中排序。我可以得到預期的結果,因爲日期格式爲:2012-09-07T13:31:35Z
。Solr:在多個文件上排序,其中之一是日期
查詢是這樣的:
sort=date+desc,name+desc
我不想按時完成排序也。
您可以在日期使用功能,例如你的情況
sort=floor(div(ms(date),86400000))+desc,name+desc
注意,這需要dynamicField通配符沒有設置被忽略,即以下行schema.xml中應該不存在,如果是,那麼你就需要把它註釋掉或用一些數字類型,然後才能進行排序如上
<dynamicField name="*" type="ignored" multiValued="true" />
Thnx很多工作:) – user1737619
另一種選擇也將存儲僅日期部分的數字表示(即時間戳,從在過去的某個日期,直到文檔的日期秒上午12點)。
如果你遵循時間戳的通用標準,應該很容易維護,查詢和從時間戳轉換到日期,反之亦然。
什麼是日期格式的問題? – Jayendra
@Jayendra:由於時間附有它,所以當我使用該字段和名稱字段對列表進行排序時,名稱字段排序並不重要,因爲即使它們在同一日期,沒有兩個名稱的時間完全相同。 – user1737619