Avec l'expansion continue de l'échelle des plates-formes de commerce électronique, le nombre et les types de produits rencontrés par les utilisateurs deviennent de plus en plus riches. Afin d'aider les utilisateurs à positionner les produits requis plus efficacement, les fonctions de filtrage et de tri des attributs des produits sont devenues cruciales. Cet article partagera comment créer un système de recherche rapide avec SPHINX et PHP pour améliorer l'expérience de recherche de la plate-forme.
Sphinx est un moteur de recherche en texte complet open source avec des performances de récupération extrêmement élevées. Il prend en charge plusieurs modes de recherche, convient à la requête rapide à interrogation à grande échelle et est largement utilisé dans la recherche sur site, le système de commerce électronique, l'analyse du journal et d'autres scénarios.
Dans les plates-formes de commerce électronique, les produits ont généralement plusieurs attributs, tels que la marque, la couleur, la taille, etc. Grâce à la fonction de filtrage de Sphinx, nous pouvons permettre aux utilisateurs de filtrer les produits cibles à la demande. Ce qui suit est un exemple de code qui montre comment utiliser la classe SphinxClient pour implémenter le filtrage de la marque en combinaison avec PHP:
$cl = new SphinxClient;
$cl->SetServer("localhost", 9312);
$cl->SetMatchMode(SPH_MATCH_ALL);
$cl->SetFilter('brand', array(1)); // Définir les critères de filtrage de la marque,Assumer la marqueIDpour1
$res = $cl->Query("iphone");
if ($res === false) {
echo "La recherche a échoué!";
} else {
echo "Rechercher avec succès,Correspondant au total" . count($res['matches']) . "Un produit。";
foreach ($res['matches'] as $match) {
echo "marchandisesID:" . $match['id'] . ",marchandises名称:" . $match['title'] . "<br>";
}
}
En définissant les filtres d'attribut, nous pouvons rendre les résultats de recherche plus précis et répondre aux besoins personnalisés des utilisateurs.
En plus du filtrage, les utilisateurs souhaitent généralement trier les résultats de recherche par des dimensions telles que le prix, les ventes et les notations. SPHINX prend en charge les paramètres de tri flexibles, et l'exemple suivant montre les conditions de tri de définition dynamique en fonction de la sélection des utilisateurs:
$cl = new SphinxClient;
$cl->SetServer("localhost", 9312);
$cl->SetMatchMode(SPH_MATCH_ALL);
$sort = "@relevance DESC"; // Trier par dépendance par défaut
// Définissez la méthode de tri dynamiquement en fonction de la sélection des utilisateurs
if ($userSort == 'price') {
$sort .= ", price ASC";
} elseif ($userSort == 'sales') {
$sort .= ", sales DESC";
} elseif ($userSort == 'rating') {
$sort .= ", rating DESC";
}
$cl->SetSortMode(SPH_SORT_EXTENDED, $sort);
$res = $cl->Query("iphone");
if ($res === false) {
echo "La recherche a échoué!";
} else {
echo "Rechercher avec succès,Correspondant au total" . count($res['matches']) . "Un produit。";
foreach ($res['matches'] as $match) {
echo "marchandisesID:" . $match['id'] . ",marchandises名称:" . $match['title'] . "<br>";
}
}
Cette méthode améliore non seulement la flexibilité de la recherche, mais optimise également considérablement l'expérience de navigation de l'utilisateur.
En combinant Sphinx et PHP, nous pouvons construire un système de moteur de recherche efficace et évolutif pour les plates-formes de commerce électronique. Qu'il s'agisse de filtrage d'attribut multidimensionnel ou de tri des résultats flexibles, il peut atteindre l'objectif des utilisateurs de positionner avec précision leurs besoins parmi les produits massifs. J'espère que les exemples pratiques de cet article pourront vous fournir une référence précieuse lors du développement de fonctions de recherche sur les plateformes de commerce électronique.