我正在使用Lucene,我正在尝试找到一种索引和检索具有ranged属性的文档的方法。
例如我有:
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-tree的方法处理索引,但它们是否在Lucene中实现?另外,我想我需要的应该是MultiTermQuery的子类,因为查询Price in [55 TO 65]
有两个边界,但我没有看到任何适合MultiTermQuery的子类。
感谢任何帮助, 感谢,
西尔维奥
P.S。我正在使用Lucene 2.9.0,但如果需要,我可以更新到最新版本。
答案 0 :(得分:1)
尝试的一个简单选项是,在索引时,只需将范围扩展到范围内的每个离散值。所以[30到50]将被索引为30,31,32,33,34等。然后使用正常范围查询来查询范围。只要没有大量离散值(数百万),这可能就足够了。