PHP を使用して知識 Q&A Web サイトのユーザー検索履歴と推奨機能を開発する
多くの知識 Q&A Web サイトでは、ユーザー検索履歴と推奨機能は重要な機能の 1 つです。パーソナライズされた検索エクスペリエンスを提供し、ユーザーが興味のあるコンテンツを見つけやすくします。この記事では、PHP を使用してこれらの機能を開発する方法について説明します。
まず、ユーザーの検索履歴と推奨コンテンツを保存するデータベースを作成する必要があります。これを実現するには、MySQL またはその他のリレーショナル データベースを使用できます。以下は、検索履歴テーブルの構造の簡単な例です。
CREATE TABLE `search_history` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `keyword` varchar(255) NOT NULL, `search_time` datetime NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `keyword` (`keyword`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
次に、PHP を使用して、ユーザーの検索履歴の記録機能を実装します。すでにユーザーがシステムにログインしており、ユーザーがログイン後に検索操作を実行するとします。以下はサンプル コードです。
// 假设用户已登录,获取用户ID $user_id = $_SESSION['user_id']; // 获取用户搜索关键词 $keyword = $_POST['keyword']; $search_time = date('Y-m-d H:i:s'); // 将搜索历史插入数据库 $query = "INSERT INTO search_history (user_id, keyword, search_time) VALUES ('$user_id', '$keyword', '$search_time')"; mysqli_query($connection, $query);
上記のコードは、ユーザーの検索キーワード、ユーザー ID、検索時刻をデータベースの search_history
テーブルに挿入します。
次にレコメンド機能を実装していきます。ユーザーの検索履歴や他のユーザーの検索行動に基づいて、おすすめコンテンツを生成できます。以下はサンプル コードです。
// 获取当前用户的搜索历史 $query = "SELECT keyword FROM search_history WHERE user_id = '$user_id'"; $result = mysqli_query($connection, $query); // 将搜索历史拼接为字符串,用于生成推荐内容 $search_history = ''; while ($row = mysqli_fetch_assoc($result)) { $search_history .= $row['keyword'] . ' '; } // 查询其他用户可能感兴趣的内容 $query = "SELECT keyword, COUNT(*) AS count FROM search_history WHERE user_id != '$user_id' AND keyword NOT IN ($search_history) GROUP BY keyword ORDER BY count DESC LIMIT 5"; $result = mysqli_query($connection, $query); // 输出推荐内容 while ($row = mysqli_fetch_assoc($result)) { echo $row['keyword'] . '<br>'; }
上記のコードは、まず現在のユーザーの検索履歴を取得し、それを文字列に連結します。次に、データベースにクエリを実行して、他のユーザーが興味を持つ可能性のあるコンテンツを検索し、検索数の降順に並べ替えて、上位 5 つのキーワードのみを返します。
上記のコード例を通じて、PHP を使用して、知識の質問と回答の Web サイトでのユーザー検索履歴と推奨機能を開発できます。このようにして、パーソナライズされた検索エクスペリエンスをユーザーに提供し、興味のあるコンテンツを見つけやすくします。もちろん、これは単なる単純な例であり、実際のニーズに応じて変更および拡張できます。
以上がPHPを使用した雑学サイトのユーザー検索履歴とレコメンド機能を開発しました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。