Я использую Lucene и пытаюсь найти способ индексировать и извлекать документы, имеющие свойство range.
Например, у меня есть:
Document 1: Price:[30 TO 50]
Document 2: Price:[45 TO 60]
Document 3: Price:[60 TO 70]
И Я хотел бы искать все документы, диапазоны которых пересекают определенный интервал, в приведенном выше примере, если я ищу Price in [55 TO 65]
, я должен получить Document 2
и Document 3
в качестве результатов.
Я не думаю, что один только NumericRangeQueries поможет, мне нужно работать над индексом с чем-то похожим на R-деревья, но реализованы ли они в Lucene? Кроме того, я полагаю, что мне нужен подкласс MultiTermQuery, потому что запрос Price in [55 TO 65]
имеет две границы, но я не вижу ничего подходящего среди подклассов MultiTermQuery.
Любая помощь приветствуется, спасибо,
Сильвио
P.S. Я использую Lucene 2.9.0, но при необходимости могу обновить до последней версии.