1

私は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 2Document 3

NumericRangeQueriesだけではうまくいかないと思います。Rツリーに似たものを使用してインデックスを操作する必要がありますが、Luceneに実装されていますか?また、クエリには2つの境界があるため、必要なのはMultiTermQueryのサブクラスであると思いますPrice in [55 TO 65]が、MultiTermQueryのサブクラスの中に適切なものは何もありません。

どんな助けでもありがたいです、ありがとう、

シルヴィオ

PS私はLucene2.9.0を使用していますが、必要に応じて最新リリースに更新できます。

4

1 に答える 1

1

試行する簡単なオプションの 1 つは、インデックスの時間中に、範囲を範囲内の各離散値に拡張することです。したがって、[30 TO 50] は 30、31、32、33、34 などのようにインデックス付けされます。次に、通常の範囲クエリを使用して範囲をクエリします。大量の離散値 (数百万) がない限り、これで十分に機能する可能性があります。

于 2010-03-24T18:09:43.650 に答える