PHP 開発のヒント: 高速検索の実装方法
はじめに:
多くの Web アプリケーションでは、検索機能は重要な部分です。電子商取引 Web サイト、ニュース Web サイト、ソーシャル メディア プラットフォームのいずれであっても、高速かつ効率的な検索機能によりユーザー エクスペリエンスが大幅に向上します。この記事では、高速検索機能の実装に役立つ PHP 開発スキルをいくつか紹介します。
1. フルテキスト インデックス作成テクノロジを使用する
MySQL は、検索効率を向上させるフルテキスト インデックス作成機能を提供します。まず、MySQL のバージョンがフルテキスト インデックスをサポートしていることを確認してください。次に、検索する必要があるテーブル フィールドにフルテキスト インデックスを作成します。たとえば、products
という名前のテーブルがあり、フィールド name
が含まれている場合、次のコマンドを使用してフルテキスト インデックスを作成できます:
ALTER TABLE products ADD FULLTEXT(name);
Next, MATCH()
関数と AGAINST()
関数を使用して、フルテキスト インデックスを検索できます。たとえば、キーワード 手机
を含む製品を検索したい場合、次のクエリ ステートメントを使用できます。
SELECT * FROM products WHERE MATCH (name) AGAINST ('手机');
2. キャッシュ テクノロジの使用
検索機能は通常、問題は検索結果です。データ量が多く、検索ごとにデータベースへのクエリが必要になります。この場合、キャッシュ技術を使用すると検索速度が大幅に向上します。 Memcached や Redis などのキャッシュ サーバーを使用すると、検索結果を保存し、データベースへのクエリの数を減らすことができます。
次は、Memcached を使用して検索結果をキャッシュするサンプル コードです:
$keyword = $_GET['keyword']; $memcached = new Memcached(); $memcached->addServer('localhost', 11211); $result = $memcached->get('search_' . $keyword); if ($result) { echo '搜索结果来自缓存:<br>'; foreach ($result as $item) { echo $item['name'] . '<br>'; } } else { // 从数据库中查询搜索结果 $sql = "SELECT * FROM products WHERE name LIKE '%" . $keyword . "%'"; $result = $db->query($sql); $arr = []; if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $arr[] = $row; } $memcached->set('search_' . $keyword, $arr, 3600); // 缓存结果一小时 echo '搜索结果来自数据库:<br>'; foreach ($arr as $item) { echo $item['name'] . '<br>'; } } else { echo '抱歉,没有找到相关结果。'; } }
3. AJAX を使用してリアルタイム検索を実装する
検索のユーザー エクスペリエンスを向上させるために、 AJAX テクノロジーを使用してリアルタイム検索を実装できます。ユーザーが検索ボックスにキーワードを入力すると、フロントエンド JavaScript が AJAX リクエストをバックエンドに送信し、バックエンドが一致する検索結果を返し、フロントエンドが検索結果をユーザーに表示します。以下は、jQuery と PHP を使用して実装されたリアルタイム検索のサンプル コードです。
<!DOCTYPE html> <html> <head> <title>实时搜索</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function () { $("#keyword").keyup(function () { var keyword = $(this).val(); $.ajax({ url: "search.php", type: "POST", data: {keyword: keyword}, success: function (data) { $("#result").html(data); } }); }); }); </script> </head> <body> <input type="text" id="keyword" placeholder="请输入关键词"> <div id="result"></div> </body> </html>
// search.php $keyword = $_POST['keyword']; $sql = "SELECT * FROM products WHERE name LIKE '%" . $keyword . "%'"; $result = $db->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo $row['name'] . '<br>'; } } else { echo '抱歉,没有找到相关结果。'; }
概要:
Web アプリケーションの検索機能を開発する場合、全文インデックス作成、キャッシュ、AJAX および他のテクノロジーにより、検索効率、速度、ユーザー エクスペリエンスが大幅に向上します。この記事で紹介したPHP開発スキルがあなたのお役に立てれば幸いです。
以上がPHP 開発のヒント: 高速検索の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。