オートコンプリートのために PHP を使用して MySQL にあいまいな会社名一致を実装するにはどうすればよいですか?
自動補完のための PHP を使用した MySQL でのファジー会社名マッチング
概要
検索会社名のあいまい一致は、オートコンプリート システムの一般的なタスクです。このタスクは、一致する可能性のある企業が多数あり、効率的な検索アルゴリズムが必要であるため、困難になる可能性があります。
Soundex インデックス作成
ファジー マッチングの 1 つのアプローチは、Soundex を使用することです。インデックス作成。 Soundex は、発音に基づいて単語をエンコードする音声アルゴリズムです。これにより、スペルが異なる場合でも、単語をほぼ一致させることができます。ただし、Soundex のインデックス作成には、長い文字列を区別できないことや、最初の文字が同じである必要があることなどの制限があります。
レーベンシュタイン距離
より高度なアプローチファジーマッチングにはレーベンシュタイン距離が使用されます。レーベンシュタイン距離は、ある文字列を別の文字列に変換するために必要な挿入、削除、または置換の数を測定します。 Soundex とは異なり、この方法には前述の欠点がありません。
PHP でのレーベンシュタイン距離の使用
codejanitor.com の Web サイトでは、MySQL ストアド関数の例が提供されています。レーベンシュタイン距離を計算します。この関数を使用すると、次のように会社名に対してあいまい一致を実行できます:
// Load MySQL stored function (if not already loaded) if (!function_exists('Levenshtein')) { $sql = "CREATE FUNCTION Levenshtein(s1 VARCHAR(255), s2 VARCHAR(255)) RETURNS INT BEGIN DECLARE lv_s1, lv_s2 VARCHAR(255); DECLARE lv_len1, lv_len2, lv_i, lv_j, lv_c, lv_cost INT; DECLARE lv_arr1[255] INT; SET lv_s1 = LOWER(s1); SET lv_s2 = LOWER(s2); SET lv_len1 = LENGTH(lv_s1); SET lv_len2 = LENGTH(lv_s2); -- Initialize the array SET lv_arr1[1] = 0; FOR lv_i = 1 TO lv_len1 DO SET lv_arr1[lv_i + 1] = lv_i; END FOR; -- Step 2 FOR lv_j = 1 TO lv_len2 DO SET lv_c = lv_j; FOR lv_i = 1 TO lv_len1 DO IF SUBSTRING(lv_s1, lv_i, 1) = SUBSTRING(lv_s2, lv_j, 1) THEN SET lv_cost = 0; ELSE SET lv_cost = 1; END IF; SET lv_c = LEAST(lv_c + 1, lv_arr1[lv_i] + lv_cost, lv_arr1[lv_i - 1] + 1); SET lv_arr1[lv_i] = lv_c; END FOR; END FOR; RETURN lv_c; END;"; $result = $mysqli->query($sql); } // Execute fuzzy matching query $numWords = 0; $userInput = "Microsift"; $query = "SELECT company_name, Levenshtein('$userInput', company_name) AS distance FROM companies ORDER BY distance ASC"; $result = $mysqli->query($query); // Display results while ($row = $result->fetch_assoc()) { $numWords++; echo $row['company_name'] . " (" . $row['distance'] . ")\n"; } if ($numWords == 0) { echo "No matches found.\n"; }
以上がオートコンプリートのために PHP を使用して MySQL にあいまいな会社名一致を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
