用於高效文字搜尋的MySQL Levenshtein
本文討論如何將強大的Levenshtein 距離整合到MySQL 中以進行高效文字搜尋演算法。透過使用 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']; } }
此代碼查詢數據庫中的所有單詞,計算每個單詞的編輯距離,並識別與輸入足夠相似的單字word.
但是,這種方法並不是最佳方法,因為它需要獲取所有行並在PHP 中執行Levenshtein 計算。為了提高效率,我們可以利用MySQL 的強大功能,直接在查詢中引入Levenshtein 函數:
mysql_qery("SELECT `term` FROM `words` WHERE levenshtein('$word', `term`) BETWEEN 0 AND 4");
該查詢使用MySQL levenshtein() 函數來計算輸入單字與單字之間的距離在資料庫中單字。 BETWEEN 子句確保我們只檢索指定 Levenshtein 距離內的單字(在本例中為 0 到 4)。
透過將 Levenshtein 函數合併到 MySQL 中,我們無需在 PHP 中處理過濾,從而實現更快、更有效率的文字搜尋。
以上是MySQL的Levenshtein功能如何提高文字搜尋效率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!