Heim > Artikel > Backend-Entwicklung > Implementieren Sie die automatische Vervollständigungssuche mit PHP und Redis
Bei der modernen Website-Entwicklung ist die Suchfunktion unerlässlich. Wenn ein Benutzer jedoch mit der Eingabe eines Suchbegriffs beginnt, wartet die Suchmaschine normalerweise darauf, dass der Benutzer die Eingabe abgeschlossen hat, und führt dann eine vollständige Suche durch. Dies kann die Benutzererfahrung und Reaktionsfähigkeit beeinträchtigen, insbesondere wenn Sie über große Datenmengen verfügen.
Um das Benutzererlebnis und die Reaktionsgeschwindigkeit zu verbessern, können wir die Suchfunktion mit automatischer Vervollständigung verwenden. Mithilfe der Suchfunktion zur automatischen Vervollständigung reagiert die Website sofort und zeigt eine Reihe möglicher Suchergebnisse basierend auf den Eingaben des Benutzers und den wahrscheinlichsten Zitaten an.
In diesem Artikel wird erläutert, wie Sie mit PHP und Redis die Suchfunktion zur automatischen Vervollständigung implementieren.
PHP ist eine universelle Programmiersprache, die häufig für die Webentwicklung verwendet wird. Redis ist eine schnelle In-Memory-Schlüssel-/Wertspeicherdatenbank für Caching und schnellen Datenzugriff. Wir werden diese beiden Techniken verwenden, um eine Implementierung der automatischen Vervollständigung der Suche zu erstellen.
Zuerst müssen wir ein Eingabefeld erstellen, um die Eingaben des Benutzers zu erfassen und mögliche Suchergebnisse anzuzeigen. Wir können HTML und JavaScript verwenden, um diese Funktionen zu implementieren. Wenn der Benutzer ein Suchwort in das Eingabefeld eingibt, können wir mithilfe von JavaScript passende Suchergebnisse vom Server anfordern und diese im Dropdown-Menü anzeigen. Hier wird AJAX-Technologie benötigt, um automatisierte Anfragen ohne Aktualisierung der Seite umzusetzen.
Jetzt müssen wir diese Anfrage an die Serverseite senden. Wir können PHP verwenden, um diese Aufgabe zu erledigen. Zuerst müssen wir auf der Serverseite ein Skript erstellen, um auf AJAX-Anfragen zu antworten. Dieses Skript verarbeitet die Eingaben des Benutzers und nutzt den Redis-Cache zur Datenprüfung.
Redis ermöglicht es uns, Schlüssel-/Wertpaare mit Schlüsselwörtern und Referenzzählung im Speicher zu speichern. Wenn ein Suchschlüsselwort eingegeben wird, können wir das zugehörige Schlüsselwort sofort im Speicher finden und den Referenzzähler aktualisieren. Durch die Verwendung von Caching können wir die Geschwindigkeit verbessern, mit der Suchergebnisse abgerufen werden.
Das PHP-Skript sollte wie folgt ablaufen:
$redis = new Redis();
$redis-> ('127.0.0.1', 6379);
$query = $_GET['query'];
$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); # 🎜🎜#
Hier verwenden wir die zRevRange()-Methode in Redis, um alle Schlüssel-/Wertpaare von Schlüsselwörtern zu extrahieren, sortiert von der höchsten zur niedrigsten Referenzanzahl. Anschließend verwenden wir die Funktion „stripos()“, um einen Fuzzy-Matching durchzuführen, relevante Suchergebnisse herauszufiltern und sie der Ergebnismenge hinzuzufügen. Schließlich verwenden wir die Funktion usort(), um die Suchergebnisse nach Referenzanzahl zu sortieren. Schließlich verwenden wir die Funktion json_encode(), um das Ergebnis in das JSON-Format zu konvertieren und an Javascript zurückzugeben. An diesem Punkt haben wir die Grundfunktion der Verwendung von PHP und Redis zur Implementierung der automatischen Vervollständigungssuche abgeschlossen. Mit dieser Funktion müssen Benutzer nicht warten, bis die vollständige Suche abgeschlossen ist, bevor sie die sehen können Suchergebnisse, was das Benutzererlebnis und die Reaktionsgeschwindigkeit erheblich verbessert.Das obige ist der detaillierte Inhalt vonImplementieren Sie die automatische Vervollständigungssuche mit PHP und Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!