Я использую Lucene и пытаюсь найти способ индексировать и получать документы, имеющие свойство ранжирования.
Например, у меня есть:
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.
Любая помощь приветствуется,
спасибо,
Silvio
P.S. Я использую Lucene 2.9.0, но при необходимости могу обновиться до последней версии.