У меня есть сценарий, в котором у меня есть объект, с которым связано свойство доступности. Я закодировал даты в месяц как 32-битный двоичный файл с 1 для доступных и 0 для недоступных. Теперь я хочу искать объекты, которые доступны в диапазоне дат. Как мне лучше всего сделать это с люценом?
Лучший способ поиска даты в lucene
Ответы (1)
Возможно, лучший способ сохранить это будет так:
available_on=20111028
available_on=20111029
где дата закодирована как целое число, и одно поле для каждой доступной даты. Затем вы можете использовать NumericRangeQuery для поиска диапазона доступности.
Если это не удастся, я думаю, вы могли бы написать фильтр, чтобы перебирать каждое значение, используемое для вашего битового поля, и выбирать те, у которых установлен один из необходимых битов.
person
araqnid
schedule
05.10.2011
Я думал о части фильтра. Это хороший метод? При реализации предыдущего метода у вас будет слишком много записей, верно? Так что, если он будет полностью доступен в октябре месяце, у вас будет 31 запись. Это хороший подход?
- person Mahesh M; 05.10.2011
что количество значений в многозначном поле действительно не является проблемой. Вероятно, вы также будете фильтровать запрос (FQ) по дате, и только с этим числом различных доступных значений значения кэшируются очень быстро. Просто убедитесь, что вам нужна только информация о доступности, а не некоторые данные (например, цены), относящиеся к каждой из дат доступности.
- person Geert-Jan; 05.10.2011
Фильтрация происходит перед индексацией. Итак, как это может быть полезно в моем поиске в этом конкретном случае? или мы можем добавить собственные методы поиска?
- person Mahesh M; 21.10.2011