Titre : Recommandation de produits et recherche personnalisée basée sur Elasticsearch en PHP
Texte de l'article :
Introduction :
Avec le développement continu du e-commerce, la recommandation de produits et la recherche personnalisée deviennent de plus en plus importantes. Les utilisateurs espèrent trouver rapidement les produits qui répondent à leurs besoins parmi un grand nombre de produits, et les commerçants doivent également présenter aux utilisateurs les produits les plus adaptés via des systèmes de recommandation. Dans le développement PHP, l'utilisation d'Elasticsearch pour mettre en œuvre des recommandations de produits et une recherche personnalisée est l'une des solutions les plus courantes. Cet article explique comment mettre en œuvre la recommandation de produits et la recherche personnalisée basée sur Elasticsearch, et fournit des exemples de code spécifiques.
1. Concepts de base d'Elasticsearch
Elasticsearch est un moteur de recherche open source hautes performances qui peut rapidement indexer et rechercher d'énormes quantités de données. Avant d'utiliser Elasticsearch, nous devons comprendre les concepts de base suivants :
1.1 Index : Semblable à une base de données dans une base de données relationnelle, un index est un concept logique utilisé pour regrouper et organiser des données. Chaque index peut contenir plusieurs types (Type).
1.2 Type : Semblable aux tables des bases de données relationnelles, chaque type a ses propres champs et attributs.
1.3 Document : Semblables aux lignes ou aux enregistrements des bases de données relationnelles, les documents constituent l'unité de base du stockage Elasticsearch.
1.4 Mappage : Semblable au schéma d'une base de données relationnelle, le mappage est utilisé pour définir les types et les attributs des champs.
2. Mise en œuvre de la recommandation de produits
Dans la recommandation de produits, nous pouvons utiliser le score de pertinence d'Elasticsearch pour y parvenir. Les étapes spécifiques sont les suivantes :
2.1 Créer un index et un type
Tout d'abord, nous devons créer un index pour stocker les données du produit et définir un type pour décrire les informations sur le produit. Vous pouvez utiliser le client PHP fourni par Elasticsearch pour vous connecter au serveur Elasticsearch et exécuter le code suivant :
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'product', 'body' => [ 'mappings' => [ 'type' => [ 'properties' => [ 'name' => [ 'type' => 'text', 'analyzer' => 'standard' ], 'category' => [ 'type' => 'keyword' ], 'price' => [ 'type' => 'double' ] ] ] ] ] ]; $client->indices()->create($params);
2.2 Importer les données du produit
Ensuite, nous devons importer les données du produit dans Elasticsearch. Vous pouvez utiliser la fonction d'insertion par lots d'Elasticsearch pour importer des données de produit dans Elasticsearch par lots. L'exemple de code est le suivant :
$products = [ ['name' => 'iPhone 12', 'category' => '手机', 'price' => 7999], ['name' => 'MacBook Pro', 'category' => '电脑', 'price' => 10999], ['name' => 'AirPods Pro', 'category' => '耳机', 'price' => 1999] ]; $params = [ 'index' => 'product', 'type' => 'type', 'body' => [] ]; foreach ($products as $product) { $params['body'][] = [ 'index' => [ '_index' => 'product', '_type' => 'type' ] ]; $params['body'][] = $product; } $client->bulk($params);
2.3 Requête de recommandation de produit
Afin de mettre en œuvre la recommandation de produit, nous pouvons créer une requête pour rechercher et d'autres produits. avec une corrélation plus élevée. L'exemple de code est le suivant :
$params = [ 'index' => 'product', 'type' => 'type', 'body' => [ 'query' => [ 'more_like_this' => [ 'fields' => ['name'], 'like' => [ ['_index' => 'product', '_id' => '1'] // 假设用户感兴趣的商品编号为 1 ], 'min_term_freq' => 1, 'max_query_terms' => 20 ] ] ] ]; $response = $client->search($params);
Le code ci-dessus renverra un ensemble d'autres produits fortement liés aux produits qui intéressent l'utilisateur.
3. Mise en œuvre de la recherche personnalisée
La recherche personnalisée peut fournir aux utilisateurs des résultats de recherche plus personnalisés en fonction de leurs habitudes et préférences de recherche. Les étapes pour mettre en œuvre la recherche personnalisée sont les suivantes :
3.1 Enregistrer l'historique de recherche de l'utilisateur
Tout d'abord, nous devons enregistrer l'historique de recherche de l'utilisateur. Vous pouvez utiliser Redis ou une base de données pour stocker l'historique de recherche de l'utilisateur. L'exemple de code est le suivant :
$userId = 1; // 假设用户编号为 1 $keyword = 'iPhone'; // 存储用户搜索记录 $redis->sadd("user:$userId:search_history", $keyword);
3.2 Construction d'une requête de recherche personnalisée
Sur la base de l'historique de recherche de l'utilisateur, nous pouvons construire une requête qui utilise des mots-clés fréquemment recherchés par l'utilisateur comme conditions de requête. L'exemple de code est le suivant :
$params = [ 'index' => 'product', 'type' => 'type', 'body' => [ 'query' => [ 'bool' => [ 'should' => [ ['match' => ['name' => $keyword1]], // 用户搜索历史中的关键词1 ['match' => ['name' => $keyword2]], // 用户搜索历史中的关键词2 // ... ] ] ] ] ]; $response = $client->search($params);
Le code ci-dessus renverra des résultats de recherche personnalisés construits en fonction de l'historique de recherche de l'utilisateur.
Conclusion :
En utilisant Elasticsearch, nous pouvons facilement mettre en œuvre des recommandations de produits et des fonctions de recherche personnalisées. Cet article présente la méthode de mise en œuvre de la recommandation de produits et de la recherche personnalisée basée sur Elasticsearch, et fournit des exemples de code PHP spécifiques. J'espère que cet article pourra aider les développeurs PHP dans la recommandation de produits et la recherche personnalisée.
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!