0

2つのLuceneインデックス(バージョン3.5.0)があり、HibernateSearchで記述します。個々のインデックスの結果の共通部分(AND)である結果を返す検索を実装する必要があります。主な問題は、個々の結果と最終結果の両方が非常に大きくなる可能性があるため、組み合わせが効率的である必要があることです。これを行うための効率的な方法はありますか?マルチリーダーは私を助けることができますか?

4

1 に答える 1

1
  1. MultiReader は、複数のインデックスを検索する簡単な方法です。
  2. 各 Lucene ドキュメントにそのインデックスを付けることは、おそらく最速のソリューションです。index:globalandのようなもの( andインデックスindex:localがある場合)。たとえば、「例外」に対するクエリは次のようになります。globallocal

    (例外 AND インデックス:グローバル) OR (例外 AND インデックス:ローカル)

その後、両方のインデックスで発生する Lucene ドキュメントの検索結果をフィルタリングします。

単純なクエリを実行できないことに注意してください。

exception AND (index:global AND index:local)

index:globalと の両方のindex:local値を持つ 0 (ゼロ) の Lucene ドキュメントが存在するためです。

于 2013-02-05T12:06:59.717 に答える