私が構築したカスタム CRM に予測的な「最適一致」名前検索機能を追加しようとしていますが、いくつかの問題が発生しています。私はSphinxを使用することにしました。箱から出してすぐに望んでいたことを実行できると考えていましたが、いくつか問題がありました。sphinx が使用するマッチング モードは理解していますが、次のようなものを取得する方法がよくわかりません。たとえば、次のようになります。
私がクエリした場合:Mike Shinoda
ベスト マッチでランク付けされた、次のようなマッチを取得できるはずです。Mike Shinoda | Shinoda, Mike | Mike Shinoji | Michael Shinoda | Shinoda, Michael | Mike James Shinoda | Mike and Ike Shinoda | Shinoda, Miles
そのようなことをするための最善の方法は何ですか?私はスフィンクスとは結婚していません。スフィンクスのほうが仕事をうまくこなしそうなものを見つけられませんでした。
私はすでにこのスタックの質問Sphinx で提案を実装しようとしましたが、「もしかして...?」提案のアイデア。うまくいきますか?SPH_MATCH_ANY
、しかし、マッチングモードがあまりにも多くのレコードに一致し、クエリがあったときのSPH_MATCH_ALL
ようにレコードを引き込むため、実際にはあまりうまく機能しませんでした(すべての文字が含まれているため)'andrus Cheryl'
'sheryl curry'
sheryl curry
'andrus Cheryl'
編集
contact_name という 1 つのフィールドだけにインデックスを付けています。