Я использую Solr как часть механизма бронирования недвижимости - в моих записях есть многозначное поле даты, в котором хранятся даты, когда свойство уже забронировано, и, следовательно, недоступно. Я хочу иметь возможность запрашивать это и возвращать записи, у которых нет дат в указанном окне.
Я на полпути - но сейчас Солр, кажется, возвращает запись, если у нее есть хотя бы одна свободная дата - я хочу, чтобы она возвращала только записи, которые полностью пусты в пределах диапазона. Пример моей сущности:
<doc>
<arr name="DateBlockDates">
<date>2011-02-25T00:00:00Z</date>
<date>2011-02-26T00:00:00Z</date>
<date>2011-02-27T00:00:00Z</date>
</arr>
</doc>
Запрос отлично работает в этом случае:
-DateBlockDates:[2011-02-25T00:00:00Z TO 2011-02-27T00:00:00Z]
Потому что у сущности есть блоки даты для каждого из этих дней. Однако, когда я бегу:
-DateBlockDates:[2011-02-25T00:00:00Z TO 2011-02-28T00:00:00Z]
Объект возвращается, поскольку у него нет записи на 2011-02-28.
Чтобы поместить мой вопрос в SQL старой школы, я хочу сделать "count (DateBlockDates) = 0". Есть идеи?