我尝试查询使用包含日期列的数据库表构建的 Apache Lucene 索引,并且我的查询引用了这一列。在 Luke 中,我使用的搜索表达式如下:
column_name:[yyyy-MM-dd TO yyyy-MM-dd]
返回的结果是没有日期(在查询列中)且起始值是年份或更早的记录,以及起始值是年份之后的年份到结束值年份的记录。因此,如果我写 column_name:[2011-05-22 TO 2015-09-03] - 我将获得列中日期为 2012、2013、2014、2015 年的记录。
但是,根据搜索表达式,结果将不准确 - 月份和日期值将被忽略。无论我将设置什么月份和日期 - 搜索都会返回记录,其中包含每个搜索年份(从 01.01 到 31.12)的日期。
如果我使用另一种日期格式,例如:
column_name:[yyyyMMdd TO yyyyMMdd]
我正在寻找可能导致这种情况的原因?这是索引时的日期格式问题吗?或者这是搜索表达式中的日期格式问题?
为了更清楚起见,我应该添加搜索表达式:
column_name:"yyyy-MM-dd"
将按预期返回记录 - 因此表达式中包含日期。