質問
私は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の中に実装されていますか?また、私は、クエリPrice in [55 TO 65]
は、2つの境界を持っているので、私は、MultiTermQueryのサブクラスでなければならない必要があると、私はMultiTermQueryのサブクラス間、適切な何も表示されません。
すべてのヘルプは高く評価され、 おかげで、
シルビオ
P.S。私はLuceneの2.9.0を使用していますが、必要であれば、私は、最新のリリースに更新することができます。
解決
単に範囲内の各離散値にあなたの範囲を拡大し、インデックス時間の間に、あるしようとする一つの簡単なオプション。そう[30〜50] 30、31、32、33、34、等そして範囲を照会し、正常範囲のクエリを使用するようにインデックス付けされるであろう。ちょうど限り、離散値(百万人)のトンが存在しないとして、これは十分に実行することがあります。
所属していません StackOverflow