Hi,
the format you are using in you range query isn't correct
(I guess, it actually depends on how you indexed the dates).
All rangequeries (the "field:[fromxx TO toyy]" use string comparison to determine order,
so all numbers and dates have a special format in indexes to allow for correct range queries.
for example:
int 5 --> String "00000005" (don't actually remember how many 0's)
date 2008-03-08 --> String "20080308" assuming 03 is the month (yyyyMMdd format).
The actual date format depends on the resolution you've chosen on your entity,
I would recommend you "Resolution.DAY".
Warning: range queries are rewritten to boolean queries containing all possible terms in the range, so your example "2008-03-18" TO 2008-04-18 will possibly translate in
20080318 or 20080319 or 20080320 or ... or 20080418.
You must guarantee not to exceed the lucene limit for boolean clauses (1024);
So if you are using rangequeries by day you probably won't index the minutes seconds and milliseconds, as it will explode the query: choose the resolution carefully, and even so be prepared to catch an exception if you give too much options to the user.
You should use the luke tool
http://www.getopt.org/luke/ to inspect you index and verify
the index format; you can also use it to test queries.