Maison > développement back-end > tutoriel php > Comment utiliser Elasticsearch et PHP pour la recherche et la recommandation de produits

Comment utiliser Elasticsearch et PHP pour la recherche et la recommandation de produits

王林
Libérer: 2023-07-09 15:10:02
original
1620 Les gens l'ont consulté

Comment utiliser Elasticsearch et PHP pour la recherche et la recommandation de produits

Introduction :
Dans le domaine du commerce électronique actuel, un bon système de recherche et de recommandation est très important pour les utilisateurs. Elasticsearch est un moteur de recherche open source puissant et flexible, associé à PHP comme langage de développement back-end, il peut fournir une recherche de produits efficace et des fonctions de recommandation personnalisées pour les sites Web de commerce électronique. Cet article expliquera comment utiliser Elasticsearch et PHP pour implémenter des fonctions de recherche et de recommandation de produits, et joindra des exemples de code correspondants.

1. Installez et configurez Elasticsearch
Tout d'abord, nous devons installer et configurer Elasticsearch. Vous pouvez télécharger la dernière version sur le site officiel d'Elasticsearch et l'installer et la configurer conformément à la documentation officielle. Une fois la configuration terminée, vous pouvez confirmer si Elasticsearch a démarré avec succès en accédant à « http://localhost:9200 ».

2. Importer des données de produits
Afin de rechercher et de recommander des produits, nous devons d'abord importer certaines données de produits dans Elasticsearch. L'importation de données peut être réalisée à l'aide de l'API RESTful d'Elasticsearch. Voici un exemple de code qui utilise PHP pour envoyer une requête POST afin d'importer des données de produit dans Elasticsearch :

<?php
$ch = curl_init();

$data = array(
    'title' => 'iPhone 12',
    'description' => 'The latest iPhone model',
    'price' => 999,
    'category' => 'Electronics',
);

$url = 'http://localhost:9200/products/_doc/1';
$json_data = json_encode($data);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);

$response = curl_exec($ch);

curl_close($ch);

echo $response;
?>
Copier après la connexion

Le code ci-dessus importera une partie des données de produit dans l'index "products" d'Elasticsearch. Vous pouvez modifier les champs du tableau $data selon vos besoins pour importer davantage de données produit.

3. Recherche de produits
Ensuite, nous présenterons comment utiliser Elasticsearch pour la recherche de produits. Voici un exemple de code PHP simple pour effectuer une recherche correspondante dans les titres et les descriptions de produits :

<?php
$ch = curl_init();

$query = array(
    'query' => array(
        'match' => array(
            'title' => 'iPhone'
        )
    )
);

$url = 'http://localhost:9200/products/_search';
$json_query = json_encode($query);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_query);

$response = curl_exec($ch);

curl_close($ch);

echo $response;
?>
Copier après la connexion

Le code ci-dessus recherchera dans l'index "products" les produits dont les titres contiennent "iPhone" via l'API "_search" d'Elasticsearch. Vous pouvez modifier les champs et les conditions de requête dans le tableau $query selon vos besoins pour implémenter des fonctions de recherche de produits plus complexes.

4. Recommandations personnalisées
En plus de la fonction de recherche de produits, les recommandations personnalisées sont également une fonction importante. Ce qui suit est un exemple de code PHP simple pour les recommandations de produits basées sur l'historique d'achat et le comportement de navigation de l'utilisateur :

<?php
$ch = curl_init();

$query = array(
    'query' => array(
        'more_like_this' => array(
            'fields' => array('title', 'description'),
            'like' => array(
                array(
                    '_index' => 'products',
                    '_id' => '1'
                )
            ),
            'min_term_freq' => 1,
        )
    )
);

$url = 'http://localhost:9200/products/_search';
$json_query = json_encode($query);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_query);

$response = curl_exec($ch);

curl_close($ch);

echo $response;
?>
Copier après la connexion

Le code ci-dessus recommandera en fonction du produit portant l'ID de produit 1 et en fonction du produit via les titres d'API "more_like_this" d'Elasticsearch. et des descriptions pour trouver des produits similaires. Vous pouvez modifier l'ID de produit dans le tableau $like selon vos besoins pour implémenter des recommandations basées sur différents produits.

Résumé :
Cet article explique comment utiliser Elasticsearch et PHP pour implémenter des fonctions de recherche et de recommandation de produits, et fournit des exemples de code correspondants. Dans les applications réelles, les fonctions peuvent être étendues et optimisées selon les besoins, comme l'ajout de conditions de filtrage, de règles de tri, etc. En tirant pleinement parti des avantages d'Elasticsearch et de PHP, vous pouvez offrir aux sites de commerce électronique une meilleure expérience utilisateur et augmenter les ventes.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal