Java 与lucene相交的边界

Java 与lucene相交的边界,java,lucene,range,r-tree,Java,Lucene,Range,R Tree,我正在使用Lucene,我正试图找到一种方法来索引和检索具有范围属性的文档 例如,我有: Document 1: Price:[30 TO 50] Document 2: Price:[45 TO 60] Document 3: Price:[60 TO 70] 我想搜索范围与特定间隔相交的所有文档,在上面的示例中,如果我在[55到65]中搜索价格我应该得到文档2和文档3 我不认为单凭NumericRangeQueries就可以做到这一点,我需要用类似于R树的东西来处理索引,但是它们是在Luc

我正在使用Lucene,我正试图找到一种方法来索引和检索具有范围属性的文档

例如,我有:

Document 1: Price:[30 TO 50]
Document 2: Price:[45 TO 60]
Document 3: Price:[60 TO 70]
我想搜索范围与特定间隔相交的所有文档,在上面的示例中,如果我在[55到65]中搜索
价格
我应该得到
文档2
文档3

我不认为单凭NumericRangeQueries就可以做到这一点,我需要用类似于R树的东西来处理索引,但是它们是在Lucene中实现的吗?另外,我假设我需要的应该是MultiTermQuery的一个子类,因为[55到65]中的查询
Price有两个边界,但我没有看到任何适合MultiTermQuery的子类

感谢您的帮助, 谢谢

西尔维奥


另外,我正在使用Lucene 2.9.0,但如果需要,我可以更新到最新版本。

一个简单的尝试选项是,在索引期间,只需将范围扩展到范围中的每个离散值。因此[30到50]将被索引为30、31、32、33、34等等。然后使用正常范围查询来查询范围。只要没有成吨的离散值(百万),这可能就足够了。

一个简单的尝试选项是,在索引期间,只需将范围扩展到范围中的每个离散值。因此[30到50]将被索引为30、31、32、33、34等等。然后使用正常范围查询来查询范围。只要没有成吨的离散值(百万),这可能就足够了。

这样,我将与用于离散区间的值的数量相关联,而且它将生成大量字段(每个离散值一个字段),这将使我的文档架构膨胀。当然,这是一个可能的解决方案,但我将把它作为最后一个选择,您不需要创建单独的字段。所有值都将放在同一个字段中,不需要对文档模式进行更改。这样,我将与用于离散化间隔的值的数量相关联,并且它将生成许多字段(每个离散值对应一个字段),这将使我的文档模式膨胀。当然,这是一个可能的解决方案,但我将把它作为最后一个选择,您不需要创建单独的字段。所有值都将放在同一个字段中,不需要对文档模式进行更改。