是否可以使用Java中的Lucene在日期範圍內進行搜索?我如何根據日期字段和日期範圍構建Lucene搜索查詢?例如:指定日期 在Java中使用Lucene搜索日期範圍?
- 指定日期之間
- 之前的指定日期
- 。
[編輯]我使用Lucene 2.4.1和我的系統是真正的傳統和真正的考驗很差,所以我想如果可能的話不要有升級
是否可以使用Java中的Lucene在日期範圍內進行搜索?我如何根據日期字段和日期範圍構建Lucene搜索查詢?例如:指定日期 在Java中使用Lucene搜索日期範圍?
[編輯]我使用Lucene 2.4.1和我的系統是真正的傳統和真正的考驗很差,所以我想如果可能的話不要有升級
的Lucene(2.9版本之前反正)只存儲字符串值,並且它僅支持該數據的詞典範圍查詢。因此,如果您想要在其上存儲日期/時間數據和性能範圍查詢,則需要明確地格式化數據/時間值,以使其按字典順序排列。
例如,存儲您的日期/時間,就像這樣2009-10-29T15:34:00
,然後執行範圍查詢,如[2009-10-29T15:00:00 TO 2009-10-29T16:00:00]
正如已指出的其他地方,Lucene的2.9終於推出了支持針對非字符串數據範圍查詢,使得這一切都比較容易。
使用'DateTools.dateToString(date,Resolution.SECOND)'方法可以幫助您以lucene格式生成日期字符串,就像'20110223220000',意思是'2011-02-23 22:00:00'。 – bekce
是的,這是可能的。如果您需要一些示例代碼,我會爲您找到一些示例代碼 - 只需在此評論中提問即可。看一看Lucene的行動 - 你可以找到這個問題和其他許多人的答案。 –