是否可以在Java中使用Lucene搜索日期范围?如何根据日期字段和日期范围构建Lucene搜索查询?例如:
[编辑]我正在使用Lucene 2.4.1并且我的系统非常遗留并且测试非常糟糕,所以如果可能的话我不想升级
答案 0 :(得分:19)
Lucene(无论如何在版本2.9之前)只存储String值,它只支持对该数据的字典范围查询。因此,如果要在其上存储日期/时间数据和执行范围查询,则需要明确格式化数据/时间值,使其按字典顺序排列。
例如,将您的日期/时间存储为2009-10-29T15:34:00
,然后执行范围查询,例如[2009-10-29T15:00:00 TO 2009-10-29T16:00:00]
正如其他地方所指出的,Lucene 2.9最终引入了对非字符串数据的范围查询的支持,使这一切变得相当容易。