Достижение результатов поиска в нужной форме сначала требует правильной структуры схемы.Исходя из вашего описания, у вас есть три поля: «объявление», «дата» и «рассогласованность».Однако вы хотите, чтобы «дата» и «несоответствие» были связаны друг с другом.Структурирование индекса как отдельных полей нежелательно.
В этом случае рассмотрим следующую схему:
<fields>
<field name="ad" type="string" indexed="true" stored="true" required="true" />
<field name="disp-yes" type="date" indexed="true" stored="true" required="true" multiValued="true"/>
<field name="disp-no" type="date" indexed="true" stored="true" required="true" multiValued="true"/>
<field name="disp-unknown" type="date" indexed="true" stored="true" required="true" multiValued="true"/>
</fields>
(предположения сделаны для атрибутов индексированного, сохраненного и типа данных.)
В этой схеме вы можете индексировать каждое объявление и добавлять значения дат в определения полей "disp- *".При запросе вы можете структурировать поиски, чтобы получать объявления на основе несоответствия, а также применять фасетные запросы.
Дополнительным преимуществом структурирования полей disp- * как типов даты является поддержка запросов диапазона, которая применяется как к поискурезультаты, а также аспекты.