私は医師計画の申請書を書いています。医師は、ID、名前、および計画のコレクションを持つ Java オブジェクトです。計画は {start_date, end_date, planning_type} によって記述されます。日付は YYYY-MM-DD の形式で表示されます。ここで、医師 A が 2 つの計画範囲を持っているとします: (「コード スニペットの実行」コードをクリックして、計画を 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 年 1 月 7 日に勤務しているかどうかを確認しようとすると、クエリは次のようになります。
+planning.start_date:[0 TO "2016-01-07"] +planning.end_date:["2016-01-07" TO A]
このクエリは結果セットに医師 A を返しますが、これは正しくありません。実際には医師 A は勤務していませんが、Lucene がコレクションを格納する方法により、このクエリは医師 A に一致します。
これを期待どおりに機能させる方法はありますか (フィールドの追加などを含む)。