Phil.It Posted January 19, 2016 Share Posted January 19, 2016 (edited) 1. Situation actuelle: 1.1. Apparemment, le moteur de recherche interne prestashop sur le site que je dépanne ne permet pas de trouver convenablement les produits. 1.2. J'ai fait des tests manuels, cela résulte de mauvais mots-clés saisis pour chaque produit. Je constate que le champ mots-clés a été rempli par un simple copier-coller du nom du produit vers le champ mots-clés, donc sans utiliser des virgules pour séparer les mots-clés comme cela doit se faire. Dans la base PS//v1.6.1.3//MySql5.5.28 dont je parle, les mots-clés de chaque produit ont été mal renseignés, pour les 10000 produits, une seule boutique, avec deux langues FR+EN. 1.3. J'en déduis que je dois remplacer tous les mots-clés 1.4. Je cherche donc à recréer automatiquement les mots-clés à partir des mots contenus dans le champ nom du produit (champ Nom du premier onglet information). 1.5. Je parle bien de recréer le contenu du champ [mots-clés] situé en bas de la fiche produit sur l'onglet information. Ce champ est stocké dans la table ps_tag, et dans la table de liaison ps_product_tag. Pour être clair, je vais les appeler "tags" plutôt que mots-clés. 2. Ce que je pense devoir faire 2.1. Tables concernées Les tables suivantes semblent concernées par les tags: - ps_tag - ps_product_tag - ps_tag_count Je ne sais pas si d'autres sont concernées. 2.2. Je dois supprimer les données des tags existants, toutes langues comprises (actuellement FR+EN), toutes shops (boutique) comprises. Je précise cela pour le cas général, cette base n'a que la boutique n°1 créée par défaut ; Ca semble se limiter à vider les tables: - ps_tag - ps_product_tag - ps_tag_count 2.3. Algorithme global - Pour chaque produit - - Pour chaque boutique (ok il n'y en a qu'une) - - - Pour chaque langue (FR + EN) - - - - Eclater le nom du produit en cette langue en mots individuels - - - - - Créer un tag (dans cette langue) pour chaque mot individuel 2.4. Algorithme pour créer un tag Je comprends ce que théoriquement il faut mettre dans les tables - ps_tag - et la table de liaison ps_product_tag. En revanche, je ne sais pas comment remplir tous les champs de la table ps_tag_count, notamment parce que je ne sais pas à quoi elle sert. J'imagine que c'est une table statistique qui compte l'utilisation des tags par les visiteurs. Si cela est exact, cela m'arrange bien, car je pense que dans ce cas, il ne faut que vider la table, et elle sera remplie automatiquement au fur et à mesure de l'utilisation des tags par les visiteurs. 3. Questions 3.1. Ai-je la bonne analyse du problème de recherche infructueuse sur le site? Je pense que oui, mes tests semblent l'attester mais je suis ouvert aux analyses différentes. :-) 3.2. Ai-je la bonne analyse fonctionnelle? 3.3. Ai-je la bonne analyse technique? 3.4. Comment mettre en oeuvre la technique analysée? J'hésite entre tout faire en script SQL et programme PHP spécifique. Je vois bien comment créer la table ps_tag et la table ps_product_tag Je souhaite dans un premier temps tenter d'utiliser uniquement SQL. J'en suis à cette étape de ma démarche. Je vais donc continuer à chercher à avancer, et, chemin faisant, je suis à l'écoute de tous vos commentaires. Si vous avez des scripts SQL similaires réutilisables, je suis preneur. Je vois bien qu'en SQL on peut remplir une table par le résultat d'une requête, mais, je ne sais pas comment: - Eclater (par une fonction de type SPLIT) le nom du produit en mots individuels ; - Comment gérer "une boucle" sur le nombre de mots individuels obtenus ; - Comment gérer l'incrémentation des champs clés comme [ ps_tag.id_tag ]. Les experts en SQL font cela peut-être en trois coups de cuiller à pot, moi je suis en train de : Read the Fantastic Manual, Search The Fantastic Web! __ Phil.It Edited January 19, 2016 by Phil.It (see edit history) Link to comment Share on other sites More sharing options...
Oron Posted January 19, 2016 Share Posted January 19, 2016 Bonjour Je déplace votre topic dans le forum Utilisation de Prestashop configuration et difficultés. Je vois rarement voir jamais des sites avec un moteur de recherches qui m'indique un produit si je n'ai pas le nom correcte du produit. Link to comment Share on other sites More sharing options...
Phil.It Posted January 19, 2016 Author Share Posted January 19, 2016 (edited) Bonjour Je déplace votre topic dans le forum Utilisation de Prestashop configuration et difficultés. Je vois rarement voir jamais des sites avec un moteur de recherches qui m'indique un produit si je n'ai pas le nom correcte du produit. Bonjour Oron. Merci d'avoir déplacé ici, je ne suis pas familier avec les catégories. N'en ayant pas trouvé une vraiment, appropriée, j'ai laissé mon message en Discussion Générale. Je ne comprends pas votre remarque sur la recherche. Je vais tenter un exemple. Imaginons un produit dont le nom serait: [superbe Collier en Kryptonite anneaux en or de 15mm] Si vous voulez que les visiteurs trouvent le produit en tapant n'importe lequel des mots du nom, il faut saisir autant de mots-clés dans le champ mot-clés, donc, en les séparant par des virgules (comme indiqué sur le formulaire de saisie d'un produit) Or, les mot-clés des produits ont été saisis en faisant un copier-coller du nom vers le champ MC. Donc dans cet exemple, cela donne un seul mot-clé (limité par construction à 32 caractères) = [superbe Collier en Kryptonite an] En conséquence, si un visiteur tape dans la barre de recherche "kryptonite", le produit ne s'affiche pas en résultat de recherche. En effet, le seul mot-clés créé commence par "Superbe". Pour trouver le produit, il faudrait dans ce cas commencer par frapper "Superbe " qui est le début du mot-clé total unique. Pour trouver le produit en utilisant n'importe quel mot du nom, il faut saisir les mots-clés en les séparants par une virgule: Superbe,Collier,en,Kryptonite,anneaux,en,or,de,15mm Dans ce cas, le visiteur trouvera le produit par la fonction de recherche du site s'il tape n'importe lequel des mots-clés Par ailleurs, certains mots-clés sont à supprimer comme les articles et prépositions, adverbes, etc. comme : "en", "de", "la", "le", mais cela est un autre problème. Me suis-je mieux fait comprendre? Edited January 19, 2016 by Phil.It (see edit history) Link to comment Share on other sites More sharing options...
Phil.It Posted January 20, 2016 Author Share Posted January 20, 2016 Hello, Ma compréhension du sujet a évolué. Comme je le disais, les tables concernées sont au moins - ps_tag - ps_product_tag - ps_tag_count Apparemment, la table ps_tag_count stocke un compteur par tag. C'est le compte de produits __actifs__ qui portent ce tag. Ce qui complexifie la reconstitution de ce fichier. Voilà. Sinon, je n'ai pas encore déterminé la meilleure manière de mettre en oeuvre mon algorithme D'autres commentaires? Je suis surpris que personne n'ait eu à faire face au besoin de générer automatiquement les mots-clés pour tout un fichier produits. Je n'ai pas non plus trouvé de module qui le fasse. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now