Maison >développement back-end >tutoriel php >Implémenter la recherche automatique à l'aide de PHP et Redis

Implémenter la recherche automatique à l'aide de PHP et Redis

WBOY
WBOYoriginal
2023-05-17 08:00:231536parcourir

Dans le développement de sites Web modernes, la fonctionnalité de recherche est essentielle. Cependant, lorsqu'un utilisateur commence à saisir un mot-clé de requête, le moteur de recherche attend généralement que l'utilisateur termine la saisie, puis effectue une recherche complète. Cela réduit l’expérience utilisateur et la réactivité, surtout lorsque vous disposez de grandes quantités de données.

Afin d'améliorer l'expérience utilisateur et la vitesse de réponse, nous pouvons utiliser la fonction de recherche à saisie semi-automatique. Grâce à la fonction de recherche à saisie semi-automatique, le site répond immédiatement et affiche un certain nombre de résultats de recherche possibles en fonction des saisies de l'utilisateur et des citations les plus probables.

Cet article expliquera comment utiliser PHP et Redis pour implémenter la fonction de recherche à saisie semi-automatique.

PHP est un langage de programmation à usage général largement utilisé pour le développement Web. Redis est une base de données de stockage de clés/valeurs en mémoire rapide utilisée pour la mise en cache et l'accès aux données à grande vitesse. Nous utiliserons ces deux techniques pour créer une implémentation de recherche à saisie semi-automatique.

Tout d'abord, nous devons créer une zone de saisie pour capturer les entrées de l'utilisateur et afficher les résultats de recherche possibles. Nous pouvons utiliser HTML et JavaScript pour implémenter ces fonctions. Lorsque l'utilisateur saisit un mot-clé de requête dans la zone de saisie, nous pouvons utiliser JavaScript pour demander au serveur les résultats de recherche correspondants et les afficher dans le menu déroulant. La technologie AJAX est nécessaire ici pour implémenter des requêtes automatisées sans actualiser la page.

Maintenant, nous devons envoyer cette requête côté serveur. Nous pouvons utiliser PHP pour gérer cette tâche. Tout d’abord, nous devons créer un script côté serveur pour répondre aux requêtes AJAX. Ce script traitera les entrées de l'utilisateur et utilisera le cache Redis pour l'inspection des données.

Redis nous permet de stocker en mémoire des paires clé/valeur de mots-clés et de références. Lorsqu'un mot-clé de recherche est saisi, nous pouvons immédiatement trouver le mot-clé associé en mémoire et mettre à jour le décompte des références. En utilisant la mise en cache, nous pouvons améliorer la vitesse à laquelle les résultats de recherche sont récupérés.

Le script PHP doit suivre ces étapes :

  1. Connectez-vous au serveur Redis
  2. Extraire les mots-clés de recherche de la variable $_GET
  3. Extraire les résultats de recherche pertinents de Redis
  4. Trier les résultats de recherche par probabilité
  5. Retour des résultats vers Javascript

Le la prochaine étape consiste à écrire du code PHP pour extraire les résultats de recherche pertinents. En supposant que nous stockons les mots-clés et les décomptes de références dans une base de données Redis, nous pouvons utiliser le code suivant pour extraire les résultats de recherche pertinents :

$redis = new Redis();
$redis->connect('127.0.0.1', 6379 ) ;

$query = $_GET['query'];
$keywords = $redis->zRevRange('keywords', 0, -1, 'WITHSCORES');
$results = array();

foreach ($keywords as $keyword => $score) {

if (stripos($keyword, $query) === 0) {
    $results[] = array(
        'name' => $keyword,
        'score' => $score
    );
}

}

usort($results, function($elem1, $elem2) {

return $elem2['score'] - $elem1['score'];

});

echo json_encode($results);

Ici nous utilisons la méthode zRevRange() dans Redis pour extraire toutes les paires clé/valeur de mots-clés, triées du nombre de références le plus élevé au plus bas. Après cela, nous utilisons la fonction stripos() pour effectuer une correspondance floue, filtrer les résultats de recherche pertinents et les ajouter à l'ensemble de résultats. Enfin, nous utilisons la fonction usort() pour trier les résultats de la recherche par nombre de références. Enfin, nous utilisons la fonction json_encode() pour convertir le résultat au format JSON et le renvoyer en Javascript.

À ce stade, nous avons complété la fonction de base consistant à utiliser PHP et Redis pour implémenter la recherche automatique. Cette fonction permet aux utilisateurs de ne pas avoir à attendre que la recherche complète soit terminée avant de pouvoir voir les résultats de la recherche, ce qui améliore considérablement. l’expérience utilisateur et la vitesse de réponse.

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