Ваш пример выглядит так, как будто сущности вашего индекса - это торговые точки, и вы храните время их открытия и закрытия в отдельных (возможно, динамических) полях.
Если вы запрашиваете другой подход, вы должны рассмотретьреструктурируйте существующую схему или даже создайте дополнительную схему, которая использует другую сущность.
Сначала это может показаться необычным, но если этот запрос является наиболее важным для вашего приложения, вам следует рассмотреть возможность создания сущности вашейновый индекс к тому, что вы действительно хотите запросить: конкретный момент времени.Я так понимаю, экземпляр времени - это либо целый день, либо, может быть, половина или четверть дня.
Схема будет включать такие поля, как идентификатор, начальная дата дня или полдня или все, что вы выберете,конец этого, и многозначный список идентификаторов, которые указывают на выходы (сохраненные в вашем текущем индексе (используйте настройку многоядерности)).
Даже если вы выбираете четверть дня для обработки утренних, дневных и ночных часовотдельно и даже с предварительным просмотром в течение нескольких лет данные не должны взрываться.
Эта другая настройка схемы позволяет:
- выполнять самые важные вычисления во время импорта, чтобы онилегко доступный при запросе,
- простой запрос, который возвращает одним нажатием то, что вы ищете
Вы даже можете отказаться от полей Date, используя собственный способ определения диапазонов.Я думаю о создании идентификатора из даты и строки, которая указывает, является ли это утром или днем и т. Д. Это будет использоваться в качестве уникального идентификатора в SOLR.Если вы можете создать такой идентификатор из любого «экземпляра времени», который запрашивается, вы получите простой поиск идентификатора.
Например, что открыто утром 2013/03/03?
/ solr / openhours / select? Q = id: 2013_03_03_am
возвращает: массив идентификаторов розеток.