Retour au journal

Recherche WooCommerce : 20 query sur 26 sans réponse.

WooCommerce natif, Relevanssi, CelerSearch et Meilisearch comparés sur un catalogue de 20 000 produits comportant 167 584 déclinaisons. Vingt recherches sur vingt-six renvoient une page vide sur la configuration de départ, et deux intégrations utilisant le même moteur Meilisearch donnent des résultats distants de 28 points de couverture.

Pourquoi la recherche WooCommerce ne trouve pas les produits par taille et couleur

La recherche native de WooCommerce n'interroge que le titre et l'extrait du produit. Elle ne voit ni les références article, ni les attributs, ni les catégories. Si la taille, la couleur et la matière sont des attributs, et dans un catalogue d'habillement elles le sont toujours, la requête « veste bleue en lin taille 40 » ne peut pas aboutir.

Ce n'est pas un défaut de configuration : aucun réglage de WooCommerce ne le corrige, car le problème porte sur ce que le système examine, et non sur la manière dont il l'examine.

Pour le quantifier, nous avons constitué un catalogue de 20 000 produits d'habillement comportant 167 584 déclinaisons, et soumis quatre systèmes de recherche aux mêmes 26 questions : WooCommerce natif, Relevanssi, CelerSearch et Meilisearch. Vingt questions sur vingt-six renvoient une page vide sur la recherche native.

Les six qui aboutissent sont celles dont le terme recherché figure littéralement dans le titre du produit.

Relevanssi corrige la couverture mais introduit trois coûts

Relevanssi est l'extension la plus répandue pour remplacer la recherche de WordPress, et elle indexe attributs, taxonomies et champs personnalisés. Les recherches sans résultat passent de vingt à deux. Le progrès est réel.

Le premier coût est le temps : la moitié des recherches dépasse sept secondes et demie. Ce n'est pas une question de matériel, puisque tripler la mémoire allouée à la base de données n'apporte que seize pour cent de gain.

Le deuxième est l'espace : un demi-gigaoctet d'index construit en huit heures et quarante minutes, logé dans la base de données du site, où il devient la deuxième table par la taille.

Le troisième ne se voit pas. Lorsque Relevanssi ne trouve rien en exigeant tous les mots, l'extension répète la recherche en n'en exigeant qu'un seul, sans le signaler. Pour une question dont la réponse correcte compte sept produits, elle en renvoie mille quatre cents, dont aucun n'est pertinent parmi les cent premiers. Qui mesure la qualité en comptant combien de recherches « trouvent quelque chose » classe ce comportement comme une réussite.

À savoir: : Relevanssi ne reconnaît pas les pluriels, ne tolère pas les fautes de frappe, et par un réglage prédéfini les tailles S, M et L n'entrent pas du tout dans son index.

Meilisearch est combien de fois plus rapide que Relevanssi

Meilisearch est un moteur de recherche open source qui s'installe sur une machine distincte du site. Sur le même catalogue de 20 000 produits, le temps médian de réponse passe de plus de sept secondes à moins de quatre-vingt-dix millisecondes, l'index tombe au tiers et se construit en trois minutes au lieu de huit heures, et il ne pèse plus sur la base de données de la boutique.

Ces quatre-vingt-dix millisecondes comprennent soixante-dix millisecondes de réseau entre deux machines situées dans des centres de données distincts : le moteur lui-même travaille en quelques millisecondes.

Pourquoi le même moteur de recherche produit des résultats différents

C'est le résultat principal du benchmark. Nous avons comparé deux intégrations vers la même instance Meilisearch, sur la même machine, avec le même catalogue et les mêmes vingt-six questions.

La première est CelerSearch, extension WordPress gratuite, installée avec les paramètres par défaut. La seconde est une configuration construite après analyse du catalogue.

Le temps de réponse est identique, puisqu'il s'agit du même moteur. Mais la couverture passe de 66 à 94 pour cent, et les recherches sans réponse de quatre à zéro.

CelerSearch demeure nettement supérieur à Relevanssi sur chaque indicateur, et qui utilise Relevanssi gagne beaucoup en passant à CelerSearch. Les différences qui suivent ne sont pas des défauts de l'extension : ce sont des décisions qu'elle ne prend pas à la place de celui qui l'installe.

Les six décisions qui déterminent la qualité de la recherche

Mots à ignorer. Les quatre recherches restées sans résultat sont toutes des phrases, comme « robe en soie rouge pour femme ». Sans liste de mots vides, les prépositions deviennent des termes obligatoires et aucun produit ne les contient. Soixante mots suffisent à résoudre le problème.

Synonymes. Dans ce catalogue le mot « vestito » n'apparaît nulle part : les produits s'appellent « abito ». Avec treize équivalences déclarées, cette recherche passe de zéro à sept résultats sur sept attendus.

Étiquette associée à la valeur. La requête « taille 40 » contient un mot absent du catalogue : « taille ». La valeur est un attribut, l'étiquette appartient au schéma. Elle doit être générée pendant l'indexation.

Références des déclinaisons. La référence imprimée sur l'étiquette d'un vêtement est celle de la déclinaison, pas du produit. Dans la plupart des intégrations elle ne trouve rien. En agrégeant les 167 584 références dans les 20 000 produits qui les contiennent, la recherche aboutit, et l'index se construit en trois minutes au lieu de plusieurs heures.

Combinaisons réelles. En sélectionnant « bleu » et « taille 40 », presque toutes les implémentations appliquent deux conditions indépendantes. Or un vêtement peut exister en bleu taille 42 et en vert taille 40 sans exister en bleu taille 40. Un produit sur vingt affiché par un filtre combiné n'existe pas dans la combinaison demandée.

Ordre des champs. En cherchant « lin », les deux configurations trouvent les mêmes 2 803 produits, mais l'une atteint soixante-dix pour cent de précision et l'autre cent. Dans la première, le nom du fournisseur pèse autant que la matière, et les produits de « Cotone e Lino Sud » remontent avec ceux réellement en lin.

Les questions auxquelles la recherche par mots-clés ne peut pas répondre

« Quelque chose de chaud pour l'hiver », « que porter à un mariage », « des vêtements pour courir » : cinq questions sensées, cinq pages vides. Non parce que la réponse manque, mais parce que ces mots ne figurent dans aucune fiche produit.

La recherche sémantique résout cette classe de questions, et Meilisearch l'exécute sur sa propre machine, sans service externe et sans coût par requête. Dans notre test, les cinq questions sont passées de zéro à des réponses pertinentes en quelques dizaines de millisecondes.

Conclusion : installer le moteur ne suffit pas

La recherche native de WooCommerce n'est pas configurable pour faire ce qui est nécessaire. Les extensions qui opèrent dans la base de données améliorent la couverture mais introduisent leurs propres coûts. Un moteur externe comme Meilisearch résout la vitesse et l'occupation.

Mais l'écart entre 66 et 94 pour cent de couverture, à moteur, machine et catalogue identiques, tient entièrement à des décisions prises avant la mise en service du moteur. Aucune n'est automatisable, car elles dépendent de la langue du catalogue, des conventions de dénomination, des axes de déclinaison et du lexique du secteur.

Une extension installée avec les paramètres par défaut mène la boutique à mi-chemin. La seconde moitié est celle où se situent les recherches qui génèrent des commandes.

Les données complètes, le protocole, la liste des vingt-six requêtes et les résultats par cas figurent dans l'étude de cas : Benchmark de la recherche WooCommerce sur un catalogue de 20 000 produits.