Comment utiliser Elasticsearch pour mettre en œuvre un système de recommandation
À l'ère actuelle d'explosion de l'information, le système de recommandation est devenu un outil important pour aider les utilisateurs à trouver les informations dont ils ont besoin rapidement et avec précision. En tant que moteur de recherche open source hautes performances, Elasticsearch fournit de puissantes fonctions de recherche en texte intégral et d'analyse de données, et peut bien prendre en charge la mise en œuvre de systèmes de recommandation. Cet article explique comment utiliser Elasticsearch pour créer un système de recommandation simple et fournit des exemples de code.
Tout d'abord, nous devons préparer les données. Les systèmes de recommandation font généralement des recommandations basées sur le comportement historique des utilisateurs. Nous devons donc collecter des données sur le comportement des utilisateurs, telles que les enregistrements de clics, d'achats, etc. Supposons que les données que nous collectons contiennent les champs suivants : identifiant utilisateur, identifiant produit, type de comportement.
Nous pouvons utiliser le modèle de document d'Elasticsearch pour stocker chaque enregistrement de comportement sous forme de document. Voici la structure d'un exemple de document :
{
"user_id": 123,
"item_id": 456,
"action": "click"
}
Ensuite, nous devons créer un index pour stocker les données. Dans Elasticsearch, un index peut être considéré comme une base de données utilisée pour stocker et organiser les données d'un document.
Créez facilement des index à l'aide de l'API REST d'Elasticsearch. Voici un exemple de code pour créer un index :
PUT /recommendations
{
"mappings": {
"properties": { "user_id": { "type": "integer" }, "item_id": { "type": "integer" }, "action": { "type": "text" } }
}
}
Nous pouvons utiliser l'API Bulk d'Elasticsearch pour importer de grandes quantités de données à une fois. Voici un exemple de code :
POST /recommendations/_bulk
{ "index": { "_index": "recommendations", "_id": "1" }}
{ "user_id": 123, "item_id": 456 , "action": "clic" }
{ "index": { "_index": "recommendations", "_id": "2" }}
{ "user_id": 123, "item_id": 789, "action" : "acheter" }
...
Lors de l'importation de données, vous pouvez définir différentes pondérations en fonction des besoins spécifiques de votre entreprise. Par exemple, un poids plus élevé peut être défini pour les enregistrements d'achat afin qu'ils reçoivent plus de poids dans le processus de recommandation.
Dans le système de recommandation, la requête est un lien important. Nous pouvons utiliser la fonction de requête d'Elasticsearch pour obtenir les résultats recommandés en fonction du comportement historique de l'utilisateur.
Prenons comme exemple la recommandation de produits liés à l'utilisateur 123. Nous pouvons utiliser l'API de requête d'Elasticsearch pour faire des recommandations en temps réel. Voici un exemple de code :
GET /recommendations/_search
{
"query": {
"bool": { "must": [ { "term": { "user_id": 123 } } ] }
},
"size": 10
}
Le code ci-dessus renverra les 10 meilleurs résultats de recommandation liés à l'utilisateur 123 .
Enfin, nous affichons les résultats à l'utilisateur. Selon les besoins spécifiques de l'entreprise, les résultats recommandés peuvent être affichés à l'aide de pages Web, d'applications, etc.
Ce qui suit est un exemple de code pour afficher les résultats recommandés sur une page Web :
<title>推荐结果</title>
<h1>推荐结果</h1> <?php // 假设推荐结果存储在一个数组中 $recommendations = [ "商品1", "商品2", "商品3", ... ]; foreach ($recommendations as $recommendation) { echo "<p>{$recommendation}</p>"; } ?>
Résumé
Cet article explique comment utiliser Elasticsearch pour mettre en œuvre un système de recommandation simple. En collectant les données historiques sur le comportement des utilisateurs, en créant des index, en important des données, en interrogeant et en recommandant, et en affichant les résultats aux utilisateurs, nous pouvons facilement créer un système de recommandation basé sur Elasticsearch. J'espère que cet article vous sera utile !
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!