Conseils de développement PHP : Comment implémenter une recherche rapide
Introduction :
Dans de nombreuses applications Web, la fonction de recherche est un élément essentiel. Qu’il s’agisse de sites de commerce électronique, de sites d’actualités ou de plateformes de réseaux sociaux, des fonctions de recherche rapides et efficaces peuvent grandement améliorer l’expérience utilisateur. Cet article présentera quelques compétences de développement PHP pour vous aider à implémenter des fonctions de recherche rapide.
1. Utiliser la technologie d'indexation de texte intégral
MySQL fournit une fonction d'indexation de texte intégral, qui peut améliorer l'efficacité de la recherche. Tout d’abord, assurez-vous que votre version de MySQL prend en charge l’indexation en texte intégral. Ensuite, créez un index de texte intégral sur les champs de table qui doivent faire l'objet d'une recherche. Par exemple, nous avons une table nommée products
, qui contient un champ name
. Nous pouvons créer un index de texte intégral en utilisant la commande suivante : products
,其中包含一个字段name
,我们可以使用以下命令创建全文索引:
ALTER TABLE products ADD FULLTEXT(name);
接下来,我们可以使用MATCH()
和AGAINST()
函数在全文索引上进行搜索。例如,我们要搜索包含关键词手机
SELECT * FROM products WHERE MATCH (name) AGAINST ('手机');
MATCH()
et AGAINST()
recherchent sur les index de texte intégral. Par exemple, si nous souhaitons rechercher des produits contenant le mot-clé téléphone mobile
, nous pouvons utiliser l'instruction de requête suivante : $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 '抱歉,没有找到相关结果。'; } }
<!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 '抱歉,没有找到相关结果。'; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!