ですから、単純な文の配列があるとします。ユーザー入力に基づいて検索し、最も近いものを返す最良の方法は何でしょうか?
レーベンシュタイン関数は有望に思えますが、私はそれらを使いたいとは思いません。ユーザー入力は のように単純かもしれませんhighest mountain
。その場合、配列内で を含む文を検索したいと思いますhighest mountain
。highest
その正確なフレーズが存在しない場合は、 ANDを含むが、連続していない文などを検索したいと思いmountain
ます。レーベンシュタイン関数は文字単位で機能しますが、本当に必要なのは単語単位です。
highest mountains
もちろん、文にフレーズ(S に注意してください) などを含む可能性も考慮したいので、ある程度、レーベンシュタイン関数は依然として有用である可能性があります。
何を指示してるんですか?すでに存在するこれを行う PHP 用のシステムはありますか? レーベンシュタイン関数だけで適切な解決策になるでしょうか? 私が知らない単語ベースのレーベンシュタイン関数はありますか?
ありがとう!
編集- MySQL 全文検索の両方を検討し、A) 入力と B) 各文の両方を単語の個別の配列に分割する可能性も検討し、レーベンシュタイン関数を使用して単語のバリエーションを考慮して比較しました。(色、色、色など)しかし、この方法は賢いかもしれませんが、計算量が多いのではないかと心配しています。