MySQL Levenshtein: 단일 쿼리로 용어 일치 단순화
Levenshtein 거리는 두 문자열 간의 유사성을 측정한 것입니다. 이는 철자 검사 및 텍스트 수정에 일반적으로 사용됩니다. MySQL에서는 효율적인 SQL 쿼리로 유사한 용어를 찾는 데 활용할 수 있으므로 번거로운 PHP 필터링이 필요하지 않습니다.
데이터베이스에서 용어를 검색하고 데이터베이스에서 Levenshtein 거리를 계산하는 다음 PHP 코드 조각을 고려해보세요. 주어진 입력 단어:
$word = strtolower($_GET['term']); $lev = 0; $q = mysql_query("SELECT `term` FROM `words`"); while($r = mysql_fetch_assoc($q)) { $r['term'] = strtolower($r['term']); $lev = levenshtein($word, $r['term']); if($lev >= 0 && $lev < 5) { $word = $r['term']; } }
이 코드는 데이터베이스의 모든 용어를 반복하여 각각에 대한 Levenshtein 거리를 계산합니다. 거리가 5보다 크거나 같은 것을 필터링합니다. 그러나 이 접근 방식은 특히 대규모 데이터 세트의 경우 비효율적일 수 있습니다.
이 프로세스를 최적화하기 위해 MySQL Levenshtein 함수를 활용할 수 있습니다. 이 기능을 사용하면 SQL 쿼리 내에서 직접 Levenshtein 거리를 계산할 수 있으므로 PHP 기반 필터링이 필요하지 않습니다. 결과는 더 효율적이고 간결한 쿼리입니다.
$word = mysql_real_escape_string($word); mysql_qery("SELECT `term` FROM `words` WHERE levenshtein('$word', `term`) BETWEEN 0 AND 4");
이 쿼리는 입력 단어로부터 Levenshtein 거리가 0에서 4 사이인 모든 용어를 검색하여 데이터베이스에서 유사한 용어를 찾는 편리하고 확장 가능한 방법을 제공합니다. .
위 내용은 MySQL의 Levenshtein 기능은 어떻게 용어 일치 쿼리를 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!