現在、いくつかの Lucene インデックス セット (シャードと呼んでいます) があり、さまざまなドキュメント セットにインデックスを付けています。それらは独立しているため、他のものを読まなくてもそれぞれを検索できます。次に、クエリ リクエストを取得します。すべてのインデックス セットを検索し、結果を組み合わせて最終的なトップ ドキュメントを形成したいと考えています。
ドキュメントをスコアリングするとき、Luceneはすべての用語の < idf >を知る必要があり、異なるインデックス セットは同じ用語に異なる < idf > を与えることを知っています (異なるインデックス セットは異なるドキュメント セットを保持するため)。したがって、私の理解では、異なるインデックス セットのドキュメント スコアを直接比較することはできません。では、最終結果をどのように生成すればよいでしょうか?
明らかな解決策は、最初にインデックスをマージしてから、大きなインデックスに対して検索を実行することです。しかし、これは私には時間がかかりすぎるため、受け入れられません。他のより良い解決策はありますか?
PS: Lucene と Hadoop 以外のパッケージやソフトウェア (Katta など) は使用したくありません。