Maison  >  Article  >  développement back-end  >  Conseils de développement PHP : Comment implémenter la recherche rapide

Conseils de développement PHP : Comment implémenter la recherche rapide

王林
王林original
2023-08-17 11:22:441265parcourir

Conseils de développement PHP : Comment implémenter la recherche rapide

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 ('手机');

Ensuite, nous pouvons. utilisez 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 '抱歉,没有找到相关结果。';
    }
}

2. Utilisation de la technologie de mise en cache

La fonction de recherche est généralement confrontée à un problème, c'est-à-dire , les résultats de la recherche contiennent une grande quantité de données et chaque recherche nécessite d'interroger la base de données. Dans ce cas, l’utilisation de la technologie de mise en cache améliorera considérablement la vitesse de recherche. Vous pouvez utiliser un serveur de cache tel que Memcached ou Redis pour stocker les résultats de recherche et réduire le nombre de requêtes sur la base de données.

Ce qui suit est un exemple de code qui utilise Memcached pour mettre en cache les résultats de recherche :

<!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>

3. Utilisez AJAX pour implémenter la recherche en temps réel

Afin d'améliorer l'expérience utilisateur de la recherche, vous pouvez utiliser la technologie AJAX pour implémenter la recherche en temps réel. recherche. Lorsque l'utilisateur saisit des mots-clés dans la zone de recherche, le JavaScript frontal envoie une requête AJAX au back-end, le back-end renvoie les résultats de recherche correspondants, puis le front-end affiche les résultats de la recherche à l'utilisateur. Ce qui suit est un exemple de code de recherche en temps réel implémenté à l'aide de jQuery et PHP :

// 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 '抱歉,没有找到相关结果。';
}
rrreee
Résumé :

Lors du développement de la fonction de recherche d'une application Web, l'utilisation de technologies telles que l'indexation de texte intégral, la mise en cache et AJAX peut considérablement améliorer la vitesse. de recherche et d’expérience utilisateur. J'espère que les compétences de développement PHP présentées dans cet article pourront vous être utiles. 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn