Lucene проблемы с индексацией повторяющихся событий - PullRequest
2 голосов
/ 31 октября 2009

Я пытаюсь найти способ запрашивать даты в Lucene. По сути, у меня есть событие, которое имеет дату начала, дату окончания и может также происходить регулярно. Я попытался это сделать, создав в Lucene индексное поле, в котором были бы перечислены все возможные даты, разделенные запятой (или на самом деле достаточно пустого места), и затем применил бы поиск по диапазону. Даты были проиндексированы так:

Событие A, начинающееся 31-10-09: «20091031»

Событие B, начинающееся 31-10-09 и продолжающееся в течение 2 дней: «20091031, 20091101, 20091102»

Событие C, повторяющееся каждую субботу в течение следующих 3 суббот: «20091031, 20091107, 20091114»

Это, однако, не сработало, потому что, если я искал события между 20091030 и 20091101 гг., В нем должны были быть перечислены события A, B и C, но поскольку B и C имели некоторые вхождения за пределами требуемого диапазона, он не обнаруживал их.

Есть идеи, как это решить? Спасибо

1 Ответ

1 голос
/ 08 ноября 2009

Возможный способ сделать это - создать отдельный документ для каждого вхождения каждого события. Затем оба события B и C будут иметь по три документа, каждый из которых будет иметь поле даты и поле имени события. Простой поиск диапазона может найти события.

Отдельный вопрос: стоит ли вообще делать это в Lucene? Пожалуйста, см. Поисковая система и СУБД для обсуждения связанных вопросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...