我正在写一份医生计划的申请。医生是具有 ID、名称和计划集合的 Java 对象。计划由 {start_date, end_date, planning_type} 描述。日期格式为 YYYY-MM-DD。现在,考虑具有两个计划范围的医生 A:(单击“运行代码片段”代码以将计划视为 HTML 表)
<table border="1">
<tr><th>start_date</th><th>end_date</th><th>type</th></tr>
<tr><td>2016-01-01</td><td>2015-01-05</td><td>night</td></tr>
<tr><td>2016-01-11</td><td>2015-01-15</td><td>night</td></tr>
</table>
例如,如果我们尝试检查该医生是否在 2016-01-07 工作,则查询应如下所示:
+planning.start_date:[0 TO "2016-01-07"] +planning.end_date:["2016-01-07" TO A]
此查询将在结果集中返回医生 A,尽管这不是真的。实际上医生 A 不会在工作,但是,由于 Lucene 存储集合的方式,此查询匹配医生 A。
有没有办法(包括添加额外的字段,......)让它按预期工作?