Findalo

PrestaShop

Pourquoi reconstruire l'index ne répare pas la recherche PrestaShop

· 8 min de lecture · Par Ray Rodríguez, fondateur de Findalo

Si vous avez cherché pourquoi le moteur de recherche de votre PrestaShop ne trouve pas un produit, vous êtes déjà tombé sur la réponse habituelle : reconstruisez l'index. Configurer → Paramètres de la boutique → Recherche → « Ajouter les produits manquants à l'index », ou le bouton qui le reconstruit entièrement.

Parfois ça marche. La plupart du temps non, et vous restez sans savoir quoi regarder. Cet article explique ce que fait exactement cette reconstruction, ce qu'elle ne touche pas même si vous la répétez, et lesquels de ces points vous pouvez corriger vous-même cet après-midi sans rien souscrire.

Tout ce qui suit a été lu dans le code de PrestaShop 8, pas sur un forum de 2017.

Ce que fait la reconstruction de l'index

PrestaShop ne cherche pas dans vos produits. Il cherche dans un index de mots : deux tables, l'une avec chaque mot distinct de votre catalogue, l'autre qui le relie aux produits où il apparaît, avec un poids.

Reconstruire l'index, c'est refaire ces deux tables en relisant votre catalogue. Rien d'autre. Et de votre catalogue, il ne lit que les champs dont le poids est supérieur à zéro : nom, références, description courte, description longue, catégorie, marque, étiquettes, attributs et caractéristiques.

Cela explique déjà le premier cas frustrant. Si le poids de la description longue est à zéro, cette description n'est pas dans l'index, et la reconstruire mille fois continuera de la laisser dehors. Ce n'est pas que l'index soit périmé : c'est que ce texte n'a jamais été candidat.

Et au passage, un mythe : non, ce n'est pas un OU

On lit beaucoup que la recherche native renvoie tout ce qui contient n'importe lequel de vos mots. Vous cherchez Funko Ash et vous obtenez tous les Funko et tous les Ash.

Sur PrestaShop 8, ce n'est pas le cas. Le moteur résout mot par mot et croise les résultats : si vous cherchez « voiture rouge », il vous reste les produits qui ont « voiture » et « rouge ». C'est si connu que le code lui-même porte un commentaire avertissant que quelqu'un a cassé cette intersection par le passé et qu'il ne faut pas recommencer.

Si dans votre boutique cela ressemble à un OU, le problème est ailleurs — en général dans ce qui suit.

Les cinq choses que la reconstruction ne corrige pas

1. La visibilité du produit

L'index n'accepte que les produits actifs dont la visibilité est « Partout » ou « Recherche uniquement ». Un produit réglé sur « Catalogue uniquement » ne sortira jamais dans la recherche, et aucune reconstruction n'y changera rien.

C'est la cause numéro un du « ce produit existe et n'apparaît pas ». Cela se voit dans l'onglet Options de la fiche produit, et se change en masse depuis la liste.

2. La longueur minimale des mots

Il y a un réglage, sur ce même écran Recherche, qui écarte les mots plus courts que X caractères. Il s'applique avant de toucher à l'index : ces mots sont jetés, pas cherchés.

S'il est à 3, une recherche de TV ne cherche rien. Une recherche de kit 4 ne cherche que « kit ». Et si quelqu'un ne tape que des mots courts, le moteur ne renvoie pas zéro faute de correspondance : il renvoie zéro parce qu'il ne lui restait rien à chercher.

Le passer à 2 corrige un nombre surprenant de cas. Cela a un coût : l'index grossit et des mots peu utiles y entrent.

3. La liste des mots ignorés

À côté du réglage précédent se trouve une liste de mots toujours écartés. Elle arrive avec des prépositions et des articles, ce qui est très bien, mais il faut la lire : si votre catalogue est technique, il est facile qu'un mot qui signifie quelque chose chez vous s'y trouve.

4. Un mot inconnu ne donne pas zéro résultat : il tombe

C'est celui qui trouble le plus, et presque personne ne le raconte.

Quand vous cherchez plusieurs mots, PrestaShop résout chacun contre l'index. Si l'un n'y figure pas — ni tel quel, ni via la correction approximative — ce mot est écarté et la recherche continue avec les autres.

L'effet pratique : quelqu'un cherche chaussures running taille 43, « 43 » n'est pas indexé, et au lieu de dire « je n'ai rien de tel » vous lui renvoyez toutes vos chaussures de running. Le client voit une masse de résultats, aucun n'est ce qu'il demandait, et il conclut que votre moteur ne marche pas. Vous regardez votre tableau de bord et vous voyez une recherche avec des résultats, donc vous n'en savez rien.

C'est pire qu'un zéro résultat, parce qu'un zéro, au moins, se mesure.

5. La tolérance aux fautes s'épuise en milieu de phrase

PrestaShop a une correction approximative : si un mot n'est pas là, il cherche le plus proche dans l'index. Mais il dispose d'un budget de tentatives pour toute la requête, pas par mot, et il se consomme au fur et à mesure.

La conséquence est difficile à voir et facile à reproduire : dans une recherche de plusieurs mots, les premiers sont corrigés et les derniers non, parce que le budget s'était épuisé avant d'y arriver. La même faute est pardonnée en début de phrase et pas en fin.

Alors, quand faut-il reconstruire ?

Pour qu'il soit clair que ce n'est pas inutile. Reconstruire l'index est exactement ce qu'il faut faire quand :

  • Vous avez changé les poids des champs. L'ancien index a été construit avec les anciens poids.
  • Vous avez ajouté une langue.
  • Vous avez importé des produits avec l'indexation automatique désactivée, ou touché la base de données directement.
  • Vous avez migré de version ou de serveur et les tables de l'index sont restées à moitié faites.

Sur une grande boutique, la reconstruction se fait par lots et peut durer. Si elle est interrompue, l'index reste partiel, et là oui, la répéter a du sens.

La revue en dix minutes

Si vous ne retenez qu'une partie de cet article, que ce soit celle-ci. Dans l'ordre, sans rien installer :

  1. Prenez un produit qui n'apparaît pas et regardez sa visibilité. S'il est en « Catalogue uniquement », vous avez trouvé.
  2. Regardez les poids dans Paramètres de la boutique → Recherche. Si la référence est à zéro et que vos clients cherchent par référence, montez-la. Si la description longue est à zéro et que c'est là qu'est la bonne information, décidez si vous la voulez dedans.
  3. Passez la longueur minimale des mots à 2 et reconstruisez. Refaites les recherches qui échouaient.
  4. Lisez la liste des mots ignorés et retirez ce qui signifie quelque chose dans votre catalogue.
  5. Essayez une recherche de trois mots dont le dernier est très précis. Si vous obtenez beaucoup de résultats et qu'aucun ne le respecte, vous venez de voir le point 4 en direct.

Cela corrige plus de choses qu'on ne croit. Sérieusement : faites-le avant de dépenser un euro.

Ce que la configuration ne corrige pas

Et maintenant la partie honnête, celle où nous intervenons.

Certaines choses ne dépendent d'aucun réglage, parce qu'un index de mots ne va pas plus loin. Chercher par le sens et non par le mot, de sorte que « quelque chose pour la peau sensible » trouve des produits qui ne contiennent aucun de ces mots. Comprendre qu'une référence avec tirets, zéros à gauche ou suffixe de variante est la même que celle que tape le client. Classer les résultats par ce qui se vend vraiment et non par un poids fixe défini une fois. Afficher des résultats pendant la frappe. Et savoir ce qui a été cherché sans être trouvé, la seule liste qui vous dit ce qui vous manque.

C'est une autre catégorie de produit, et cela coûte de l'argent. Notre formule d'entrée est à 15 € par mois, et il y a un mois d'essai gratuit pour le voir avec votre catalogue avant de décider.

Mais si vous êtes arrivé ici depuis un moteur de recherche, le plus probable est que votre problème soit l'un des cinq ci-dessus. Corrigez-le d'abord. Si ensuite il ne trouve toujours pas ce que vos clients tapent, on en reparle.

Comment fonctionne Findalo sur PrestaShop · Écrivez-nous si vous voulez qu'on le regarde avec votre catalogue.

Continuer la lecture