1

我正在使用 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 2Document 3作为结果。

我不认为仅 NumericRangeQueries 就可以解决问题,我需要使用类似于 R-trees 的东西来处理索引,但是它们是在 Lucene 中实现的吗?另外,我想我需要的应该是 MultiTermQuery 的一个子类,因为查询Price in [55 TO 65]有两个边界,但是在 MultiTermQuery 的子类中我没有看到任何合适的东西。

任何帮助表示赞赏,谢谢,

西尔维奥

PS 我使用的是 Lucene 2.9.0,但如果需要,我可以更新到最新版本。

4

1 回答 1

1

一个简单的尝试选项是,在索引期间,只需将范围扩展到范围中的每个离散值。所以 [30 TO 50] 将被索引为 30、31、32、33、34 等。然后使用普通范围查询来查询范围。只要没有大量的离散值(数百万),这可能就足够好。

于 2010-03-24T18:09:43.650 回答