一見シンプルだが非常に複雑な検索の世界に足を踏み入れたところです。アプリケーションの場合、ユーザーを名前で検索するための検索メカニズムを構築する必要があります。
以下を含む多数の投稿や記事を読んだ後:
Luceneを個人名(名、姓)の検索に使用するにはどうすればよいですか?
http://dublincore.org/documents/1998/02/03/name-representation/
ユーザーとの関係を最初に優先してソーシャルネットワークを検索する最良の方法は何ですか?
http://www.gossamer-threads.com/lists/lucene/java-user/120417Lucene
インデックスとクエリデザインの質問-人の検索
LuceneFuzzy顧客名と部分的なアドレスを検索します
...そして私がその瞬間に見つけることができない他のいくつか。そして、少なくともインデックス作成と基本的な検索を私のマシンで機能させるために、ユーザー検索のために次のスキームを考案しました。
1)1番目、2番目、3番目の名前フィールドを用意し、Solrでインデックスを付けます
。2)複数列検索のrequestParserとしてedismaxを使用します。3
)音訳、ラテン語からASCIIへの変換などの正規化フィルターの組み合わせを使用します
。4 )最後にあいまい検索を使用します
明らかに、これに非常に慣れていないので、上記がそれを行うための最良の方法であるかどうかはわかりません。この分野で私よりも優れたアイデアを持っている経験豊富なユーザーから話を聞きたいと思います。
次の方法で名前を一致させる必要があります。
1)アクセントフォールディング:JornはJörnと一致し、その逆も同様
です
。2)代替スペル:KarlはCarlと一致し、その逆も同様
です。
ジョンなど
5)Soundexマッチング:エリンとエレン
ガイダンス、批判、コメントは大歓迎です。これが可能かどうか教えてください...またはおそらく私はただの空想です。:)
編集
また、投稿の1つからの例として、一部の人が長い名前を持っている場合に備えて、フルネームフィールドもあることを追加する必要があります。JonPaulまたはDelCarmenもJonPaulDelCarmenと一致する必要があります。
また、これは新しいプロジェクトであるため、スキーマとアーキテクチャを適切と思われる方法で変更できるため、制限は非常に限られています。