나는 사람들이 그들의 이름과 관심사를 추가하는 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