Introduction: Sphinx est un moteur de recherche en texte complet open source qui fournit des solutions de recherche rapides, précises et évolutives. L'intégration de Sphinx dans les sites Web PHP permet une haute disponibilité et d'excellentes capacités de recherche de performances. Cet article discutera en détail de la façon d'utiliser SPHINX dans un environnement PHP et de donnera des étapes d'implémentation détaillées et des exemples de code.
Sphinx est un moteur de recherche en texte intégral développé par C ++, en se concentrant sur la recherche rapide et précise de grandes quantités de données de texte. Il prend en charge les architectures distribuées, permettant la mise à l'échelle horizontale et la haute disponibilité via plusieurs nœuds. Les principales caractéristiques de Sphinx comprennent:
Il fournit aux développeurs PHP une interface client Sphinx, qui peut facilement intégrer le moteur de recherche Sphinx dans le site Web et atteindre des fonctions de recherche efficaces. Ensuite, nous présenterons comment utiliser Sphinx dans un environnement PHP et expliquer les étapes de mise en œuvre spécifiques à travers un exemple de code.
Tout d'abord, vous devez installer Sphinx sur votre serveur Linux. Vous pouvez utiliser la commande suivante pour installer:
sudo apt-get update
sudo apt-get install sphinxsearch
Sphinx nous oblige à indexer les données que nous devons récupérer avant d'utiliser la fonction de recherche. Supposons que nous ayons une table de base de données contenant des informations utilisateur et que les champs incluent l'ID, le nom et l'âge. Nous pouvons importer les données de cette table dans l'index Sphinx via le script PHP:
<?php
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'username';
$password = 'password';
<p>try {<br>
$db = new PDO($dsn, $username, $password);<br>
$query = $db->query('SELECT * FROM users');<br>
$users = $query->fetchAll(PDO::FETCH_ASSOC);</p>
$index->setFields(['id', 'name', 'age']);
foreach ($users as $user) {
$document = new SphinxDocument();
$document->setAttributes($user);
$index->addDocument($document);
}
$index->build();
} catch (pDoException $ e) {
Echo 'La connexion a échoué:'. $ e-> getMessage ();
}
?>
Une fois l'index de données terminé, l'étape suivante consiste à implémenter la fonction de recherche dans la page frontale via PHP. Voici un exemple de page de recherche simple:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Sphinx Search</title>
</head>
<body>
<form action="search.php" method="GET">
<input type="text" name="keyword" placeholder="Veuillez saisir les mots clés">
<input type="submit" value="recherche">
</form>
<?php
if (isset($_GET['keyword'])) {
$keyword = $_GET['keyword'];
$sphinx = new SphinxClient();
$sphinx->setServer('localhost', 9312);
if ($result['total'] > 0) {
foreach ($result['matches'] as $match) {
echo $match['attrs']['name'] . '<br>';
}
} else {
echo 'Aucun résultat pertinent trouvé';
}
}
?>