Jump to content

Recréer Les Tags (Mots-Clés Produit) Par Sql Ou Programme


Recommended Posts

1. Situation actuelle: 

 

1.1. Apparemment, le moteur de recherche interne prestashop sur le site que je dépanne ne permet pas de   :blink: trouver convenablement les produits. 

 

 

 

1.2. J'ai fait des B) tests manuels, cela résulte de :rolleyes:  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 :wacko: 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 :unsure:  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 B) experts en SQL font cela peut-être en trois coups de cuiller à pot, moi je suis en train de :

 

:wacko: Read the Fantastic Manual, Search The Fantastic Web! :huh:

 

 

__ Phil.It

Edited by Phil.It (see edit history)
Link to comment
Share on other sites

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

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 by Phil.It (see edit history)
Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...