lucene.net を使用して、データベース内のレコードのインデックスを作成したいと考えています。レコードは複数の異なるテーブルに格納され、レコード テーブルを通じて結合されます。各テーブルに個別にインデックスを作成し、検索結果をコードで結び付ける方がよいでしょうか。それとも、データベースから出てくるレコードを結び付けて、すべてを 1 つのインデックスに配置する必要がありますか?
他の提案も同様に役立ちます。
lucene.net を使用して、データベース内のレコードのインデックスを作成したいと考えています。レコードは複数の異なるテーブルに格納され、レコード テーブルを通じて結合されます。各テーブルに個別にインデックスを作成し、検索結果をコードで結び付ける方がよいでしょうか。それとも、データベースから出てくるレコードを結び付けて、すべてを 1 つのインデックスに配置する必要がありますか?
他の提案も同様に役立ちます。
各テーブルに対応する Lucene インデックスを作成する場合、1) 各インデックスに対して検索を実行し、2) 魔法のような方法で検索結果をマージする作業を行う必要があります。Lucene は、複数のフィールドを持つドキュメントを検索するように既に設定されており (MultiFieldQueryParser を参照)、統合された結果セットを提供します。
インデックスを作成した後で、単一のテーブルから取得したデータに基づいて検索するだけであると判断した場合でも、通常の QueryParser を使用して、ドキュメントの対応するフィールドのみを検索できます。
Lucene はデータベース テーブルに関連付けられていないため、Lucene ドキュメントで必要な情報を選択します。結果のマージとランキングは、自分で行うよりも Lucene に任せたほうがよいでしょう。