> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 Levenshtein 기능은 어떻게 용어 일치 쿼리를 최적화할 수 있습니까?

MySQL의 Levenshtein 기능은 어떻게 용어 일치 쿼리를 최적화할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-09 15:31:15
원래의
691명이 탐색했습니다.

How Can MySQL's Levenshtein Function Optimize Term Matching Queries?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿