人の名前の検索を作成する必要があります。ここで素晴らしいコンテンツを既に見ましたが、別のものが必要です。
これが私の要件です。
音声検索を使用しようとしましたが、インデックスを作成する必要がある人の名前が英語以外の名前です。Apache Solr / Lucene によって実装された音声アルゴリズムは、ポルトガル語の単語 (私の文化) には有効ではないと思います。
その後、ngrams を使用して検索することにしました。うまくいくようですが、ユーザーが入力したものがSolrインデックスにどれだけ近いかを比較する必要があります。すべてのドキュメントに単語が存在する回数を使用するため、スコアを使用できませんでした。したがって、比較の結果として、どういうわけか数値 (たとえば、パーセンテージ) を与える必要があります。つまり、ユーザーが入力したものが、solr で持っている本名にどれだけ近いかを示す必要があります。
Ps: この結果をアプリケーションで使用して、ユーザーが入力したものを使用するか、Solr に存在するものを続行します。
サンプル:
ID NAME
1 James Bond
2 James Bond Junior
3 Tony Mellord
Jhames Bond を使用すると、Ngrams を使用して 1 と 2 の両方が一致します。
PS: シナリオを明確にするために、英語の名前を使用しました。
答えを出す方法はありますか: ユーザーが入力したものは、使用スコアなしでインデックスに登録したものとどのくらい似ていますか? まあ言ってみれば:
Jhames Bond looks like James Bond in 97% (for example)
Jhames Bond looks like James Bond Junior in 87%