Reputation: 169
Is it possible to search on date ranges using Lucene in Java? How do I build Lucene search queries based on date fields and dates ranges? For example:
[Edit] i'm using Lucene 2.4.1 and my system is really legacy and really poorly tested so i would like if possible not to have to upgrade
Upvotes: 13
Views: 15228
Reputation: 403601
Lucene (before version 2.9 anyway) only stores String values, and it only supports lexicographical range queries on that data. So if you want to store date/time data and performa range queries on it, you need to explicitly format your data/time values in such a way as to make them lexicographically ordered.
For example, store your date/times as something like 2009-10-29T15:34:00
, and then do range queries like [2009-10-29T15:00:00 TO 2009-10-29T16:00:00]
As has been pointed out elsewhere, Lucene 2.9 finally introduced support for range queries against non-string data, making this all rather easier.
Upvotes: 20