Maison >développement back-end >tutoriel php >Comment mettre en œuvre un système de recommandation à l'aide d'Elasticsearch

Comment mettre en œuvre un système de recommandation à l'aide d'Elasticsearch

王林
王林original
2023-07-07 19:37:411331parcourir

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.

  1. Préparation des données

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"
}

  1. Création d'index

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"
  }
}

}
}

  1. Data import

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.

  1. Requête et 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 .

  1. Affichage des résultats

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 :

100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e

<title>推荐结果</title>

9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d

<h1>推荐结果</h1>

<?php
  // 假设推荐结果存储在一个数组中
  $recommendations = [
    "商品1",
    "商品2",
    "商品3",
    ...
  ];

  foreach ($recommendations as $recommendation) {
    echo "<p>{$recommendation}</p>";
  }
?>

7e8e7102f99d76252e9da3c3dc891334

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!

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