名前の部分をそれに相当する短い名前 (たとえば、Mike と Michael、Rich と Richard、Suzie と Susan) などでトークン化する Lucene アナライザーはありますか?
レーベンシュタイン距離のあいまい一致は私が知っている解決策であり、一部の実装者はあいまい一致と soundex アルゴリズムを組み合わせているようです。確かに、誰かがこれらの短い名前のすべてをどこかに単純にリストするだけでスワイプしましたか?
編集: この質問の最も難しい部分は、同義語データをどこから取得するかです。