私は、人が自分の名前と興味を追加するmySQLテーブルを持っています。私は100%の一致または近い一致のいずれかを見つけていく何らかの単語マッチを使用したい。私はlevenshteinの距離を聞いたが、私のテーブルを介してそれをサイクルにする方法の手がかりがありません。おそらくLevenshteinの距離を使って検索語の精度を一致させる
$input = $_POST["interest"];
$result = mysql_query("SELECT interest_desc FROM interests");
は、いくつかのグーグルを完了し、私はSOUNDEXはあなたのための代替だと思うこの時点まで
function closest($seed, $haystack){
$shortest = -1;
foreach ($haystack as $word){
$lev = levenshtein($seed, $word);
if ($lev == 0) {
$closest = $word; $shortest = 0; break;
}
if ($lev <= $shortest || $shortest < 0) {
$closest = $word; $shortest = $lev;
}
}
return $closest;
}
$array = mysql_fetch_row($result);
$closestmatch = closest($input,$array);
echo $closetmatch;
本当にこれをPHPで実行してもよろしいですか?一致するものを検索したい場合は、DBの最後で正しく処理されるものです。お知らせください。 – rdlowrey
@rdloweryによれば、おそらくMySQLに責任を渡す方が良いでしょう。http://stackoverflow.com/questions/634995/implementation-of-levenshtein-distance-for-mysql-fuzzy-searchとhttp://www.artfulsoftware.com/infotree/queries.php#552解決策のために... – HorusKol