私はLuceneを使用して連絡先データベースを検索しています。連絡先では、名前、複数の電話番号、電子メール、アドレスなどを意味します。データベースでは、これらは明らかに別々のフィールドに分割され、別々のテーブルに分割されます。私はフィールドのいずれかに基づいて連絡先を検索することができるようにしたい、例えば、 "John Doe"と入力すると、LuceneがJohn Doeの連絡先情報を返すことができます。ジョン・ドゥにも電話番号があり、その電話番号や住所、電子メールなどを入力して自分のレコードを見つけることができるようにしたいと思います。私が探しているフィールドを具体的に述べる必要はありません。連絡先を検索するためのLucene検索インデックスを構築する最善の方法
インデックスを作成する場合は、すべてのデータを1つの「データ」フィールドにマージするか、別々に保管するのが最善でしょうか?データベースからすべての追加データを取得するために使用するidを除いて、インデックスにデータを格納しません。私の状況では、標準アナライザーとクエリーパーサーがうまく機能するのでしょうか、それともカスタムアプローチをさらに取るべきですか?
私はLuceneにとってかなり新しく、本当にどれほど強力かを学んでいるので、実際にそれに慣れたり、複雑なカスタム検索クエリを作成したりすることに反対しているわけではありません。そのすべてが必要でない場合は、そのすべてを行う必要はありません。
はKISS - シングルキャッチオールフィールドは、簡略化の面で最良の選択となる所定の電流要件ごととスペースと検索速度。さらに、現代のユーザーは、どのフィールドを検索するかを指定することはできません。彼らはそれだけでそれを把握するシステムにAlaのGoogleの検索バーをしたい。 –