Maison  >  Article  >  développement back-end  >  Optimisation de la recherche et du tri des produits Sphinx PHP sur les sites e-commerce

Optimisation de la recherche et du tri des produits Sphinx PHP sur les sites e-commerce

王林
王林original
2023-10-03 10:53:02837parcourir

Sphinx PHP 在电商网站中的商品搜索与排序优化

Optimisation de la recherche et du tri de produits Sphinx PHP sur les sites Web de commerce électronique

Dans les sites Web de commerce électronique, la recherche et le tri de produits sont l'un des facteurs importants pour l'expérience utilisateur et la conversion des ventes. Afin d'améliorer l'expérience de recherche de l'utilisateur et de présenter les résultats qui correspondent le mieux à ses besoins, Sphinx PHP est un moteur de recherche en texte intégral très puissant et largement utilisé. Cet article expliquera comment utiliser Sphinx PHP pour optimiser la recherche et le tri de produits sur les sites de commerce électronique, et fournira des exemples de code spécifiques.

1. Installez et configurez Sphinx PHP

Tout d'abord, nous devons installer Sphinx PHP sur le serveur du site e-commerce. Vous pouvez l'installer via la commande suivante :

$ pecl install sphinx

Après une installation réussie, vous devez introduire Sphinx PHP dans le fichier de configuration du site :

require_once 'sphinxapi.php';

2. Établir un index de produits

Avant d'effectuer des recherches de produits, vous devez créer un index de produits dans Sphinx en premier. Tout d’abord, créez un index appelé « produits ». Supposons que notre table de produits soit nommée « produits », qui contient des champs tels que l'identifiant, le nom, la description, le prix, etc. Vous pouvez créer un index via le code suivant :

$cl = new SphinxClient();
$cl->SetServer("localhost", 9312);
$cl->SetConnectTimeout(1);
$cl->SetArrayResult(true);

$cl->SetFieldWeights(array(
    'name' => 10,
    'description' => 5,
    'price' => 1
));

$cl->SetMatchMode(SPH_MATCH_ANY);
$cl->SetSortMode(SPH_SORT_RELEVANCE);

$cl->AddIndex('products');
$cl->AddQuery('iphone', 'products');

$result = $cl->RunQueries();

if ($result === false) {
    echo "搜索失败";
} else {
    foreach ($result['results'][0]['matches'] as $match) {
        echo "商品ID: " . $match['id'] . "<br>";
        echo "商品名称: " . $match['attrs']['name'] . "<br>";
        echo "商品描述: " . $match['attrs']['description'] . "<br>";
        echo "商品价格: " . $match['attrs']['price'] . "<br>";
        echo "<br>";
    }
}

Le code ci-dessus crée d'abord un objet SphinxClient et définit le paramètres de connexion et poids de champ, mode de correspondance et mode de tri. Ensuite, le nom de l'index et le nom de la table à rechercher sont spécifiés via la méthode AddIndex(), et les mots-clés à rechercher sont spécifiés via la méthode AddQuery(). Enfin, la recherche est effectuée via la méthode RunQueries() et les résultats du produit correspondant sont affichés.

3. Optimiser le tri des produits

Lors de la recherche de produits, en plus de la correspondance des mots clés, vous devez également prendre en compte les problèmes de tri. Voici un exemple qui montre comment trier en fonction du prix du produit :

$cl = new SphinxClient();
$cl->SetServer("localhost", 9312);
$cl->SetConnectTimeout(1);
$cl->SetArrayResult(true);

$cl->SetFieldWeights(array(
    'name' => 10,
    'description' => 5,
    'price' => 1
));

$cl->SetMatchMode(SPH_MATCH_ANY);
$cl->SetSortMode(SPH_SORT_EXTENDED, '@yesno ASC, price ASC');

$cl->AddIndex('products');
$cl->AddQuery('iphone', 'products');

$result = $cl->RunQueries();

if ($result === false) {
    echo "搜索失败";
} else {
    foreach ($result['results'][0]['matches'] as $match) {
        echo "商品ID: " . $match['id'] . "<br>";
        echo "商品名称: " . $match['attrs']['name'] . "<br>";
        echo "商品描述: " . $match['attrs']['description'] . "<br>";
        echo "商品价格: " . $match['attrs']['price'] . "<br>";
        echo "<br>";
    }
}

Dans le code ci-dessus, le mode de tri est défini sur SPH_SORT_EXTENDED via la méthode SetSortMode(), puis spécifié par '@yesno ASC, price ASC' pour suivez d'abord un champ supplémentaire (par exemple s'il faut rester en haut) sont triés, puis triés par prix.

Résumé :

L'utilisation de Sphinx PHP pour optimiser la recherche et le tri de produits sur les sites Web de commerce électronique peut considérablement améliorer l'expérience de recherche de l'utilisateur et présenter les résultats qui correspondent le mieux aux besoins de l'utilisateur. Cet article présente les méthodes d'installation et de configuration de Sphinx PHP, ainsi que des exemples de code spécifiques sur la façon de créer des index de produits et d'optimiser le tri des produits. J'espère que cet article sera utile aux développeurs qui appliquent Sphinx PHP sur les sites Web de commerce électronique.

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