Recommandation de produits et recherche personnalisée basée sur Elasticsearch en PHP

PHPz
Libérer: 2023-10-03 08:20:01
original
777 Les gens l'ont consulté

PHP 中基于 Elasticsearch 的商品推荐与个性化搜索

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);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!