Retour au journal
•Recherche e-commerce

Relevanssi ou CelerSearch : quelle extension de recherche pour WooCommerce

Relevanssi travaille dans la base de données de WordPress, CelerSearch relie WooCommerce à Meilisearch. Nous les avons mesurées toutes deux sur un catalogue de 20 000 produits comportant 167 584 déclinaisons : vitesse, couverture, précision et limites qu'aucune des deux ne lève avec les paramètres par défaut.

M
Massimo Ivaldi
Auteur

Les deux voies pour corriger la recherche de WooCommerce

La recherche native de WooCommerce examine le titre et l'extrait du produit, et rien d'autre. Elle ne voit ni les références article, ni les attributs, ni les catégories. Sur un catalogue comportant tailles et couleurs, cela signifie que la majorité des recherches utiles renvoie une page vide, et ce n'est pas un problème de configuration : aucun réglage ne le corrige.

Qui cherche une solution gratuite trouve deux voies. Relevanssi remplace le moteur de recherche de WordPress en travaillant dans la base de données du site. CelerSearch laisse la base en place et achemine la recherche vers Meilisearch, un moteur externe installé sur une autre machine.

Nous les avons mesurées toutes les deux sur un catalogue de 20 000 produits d'habillement comportant 167 584 déclinaisons, en soumettant à chacune les mêmes vingt-six questions.

Ce que fait Relevanssi et où il s'arrête


Relevanssi est l'extension la plus répandue pour remplacer la recherche de WordPress. Elle construit un index inversé dans une table dédiée de la base de données et y intègre attributs, taxonomies et champs personnalisés. C'est précisément ce qui manque à WooCommerce, et le résultat se voit : les recherches sans réponse passent de vingt à deux.

Les coûts introduits sont toutefois de trois ordres.

Le premier est la vitesse. La moitié des recherches dépasse sept secondes et demie, et dix-neuf sur vingt-six dépassent cinq secondes. Ce n'est pas une question de matériel : tripler la mémoire allouée à la base de données n'apporte que seize pour cent de gain. Le goulot d'étranglement est architectural, Relevanssi exécutant deux requêtes SQL par mot cherché puis recombinant les résultats en PHP.

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 dont il devient la deuxième table par la taille, cinq fois plus volumineuse que les contenus réels. À partir de là, toutes les sauvegardes le transportent.

Le troisième ne se voit pas, et c'est le plus sérieux.

Le comportement de Relevanssi qui gonfle les résultats

Relevanssi peut être configuré pour exiger tous les mots de la requête, ce qui est le réglage pertinent pour un catalogue. Mais un comportement prédéfini l'annule : lorsqu'il ne trouve rien avec tous les mots, il refait la recherche en n'en exigeant qu'un seul, sans le signaler.

Sur une question comme « robe en soie rouge pour femme », dont la réponse correcte compte sept produits, Relevanssi en renvoie mille quatre cent soixante-dix, dont aucun n'est pertinent parmi les cent premiers.

Formellement, cette recherche a fonctionné : elle a produit des résultats. Qui mesure la qualité en comptant combien de recherches « trouvent quelque chose » jugera Relevanssi excellent. Pour l'acheteur, mille quatre cents produits erronés valent moins qu'une page vide : une page vide est une information honnête.

Les tailles S, M et L n'entrent pas dans l'index de Relevanssi

Relevanssi dispose d'un paramètre de longueur minimale des mots, fixé d'origine à deux caractères. Les chaînes plus courtes sont écartées silencieusement. En comptant les termes présents dans l'index, xs, xl, xxl et 3xl y figurent tous avec plusieurs milliers d'occurrences chacun, tandis que s, m et l n'existent pas du tout.

La recherche « pull taille M » ne peut pas aboutir, cette lettre n'étant jamais entrée dans l'index. Le paramètre peut être abaissé à un, mais alors chaque article et chaque préposition se retrouvent indexés et la précision se dégrade ailleurs.

Deux limites mineures mais réelles : Relevanssi ne reconnaît pas les pluriels, et ne tolère pas les fautes de frappe.

Ce que change CelerSearch avec Meilisearch

CelerSearch est une extension WordPress gratuite qui ne contient pas de moteur de recherche : elle le relie. Le moteur, Meilisearch, s'installe sur une machine distincte, qui peut être un petit serveur à quelques euros par mois.

La comparaison avec Relevanssi est nette sur chaque indicateur. La couverture moyenne passe de 52 à 66 pour cent et le temps médian de réponse de 7 758 millisecondes à 87. L'index tombe à 140 mégaoctets et, point plus important encore, il se trouve hors de la base de données de la boutique.

CelerSearch propose en outre une interface de configuration plus complète que celle de plusieurs produits payants : règles de pertinence, attributs interrogeables et filtrables, synonymes, mots vides, tolérance aux fautes, recherche sémantique.

Relevanssi ou CelerSearch : lequel choisir

Si le site est éditorial, ou si le catalogue compte quelques centaines de produits sans déclinaisons, Relevanssi convient parfaitement. L'extension est mature, maintenue, bien écrite, et résout un problème réel de WordPress à un coût proportionné.

Si le catalogue compte des milliers de produits avec déclinaisons, CelerSearch est le meilleur choix sur chaque paramètre mesuré, et la migration depuis Relevanssi se rentabilise le jour même : quatre-vingt-neuf fois plus rapide, index hors de la base, aucun coût de licence.

Une différence pratique demeure à connaître : CelerSearch transmet les documents au moteur un par requête HTTP, alors que Meilisearch est optimisé pour les recevoir par lots. Sur le même catalogue, l'indexation demande 2,4 heures contre trois minutes pour un chargement par lots. Le processus est de surcroît piloté par le navigateur : si vous fermez l'onglet, il s'arrête.

Pourquoi aucune des deux ne suffit avec les paramètres par défaut


C'est la partie qui surprend, et elle vaut pour Relevanssi comme pour CelerSearch.

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 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.

Vingt-huit points qui ne dépendent pas de l'extension. Les quatre recherches restées sans résultat sont toutes des phrases du type « manteau homme taille 52 », et elles échouent parce que le champ des mots vides est vide : sans cette liste, les prépositions deviennent des termes obligatoires qu'aucun produit ne contient. Le champ des synonymes est vide de la même manière, et dans le catalogue le mot « vestito » n'apparaît nulle part, les produits s'appelant « abito ».

Ce sont des cases que l'interface de CelerSearch expose. Personne ne les remplit, et personne ne dit qu'elles doivent l'être ni ce qu'il faut y mettre.

Deux autres différences portent en revanche sur la construction du document indexé, et ne se règlent pas par un paramètre. La première concerne les références des déclinaisons, celles imprimées sur les étiquettes, qu'aucune des deux extensions ne rend trouvables. La seconde concerne les combinaisons : en sélectionnant « bleu » et « taille 40 », les deux appliquent deux conditions indépendantes, et un produit sur vingt parmi ceux affichés n'existe pas dans cette combinaison.

En résumé: Relevanssi résout le problème structurel de WooCommerce à un coût qui devient intenable au-delà de quelques milliers de produits, et son mécanisme de repli produit des résultats nombreux et erronés que les mesures superficielles prennent pour un succès.

CelerSearch est nettement supérieur sur chaque paramètre et doit être préféré sur tout catalogue de taille réelle.

Mais installer la bonne extension mène la boutique à mi-chemin. La seconde moitié repose sur des décisions qu'aucune extension ne prend à votre place, parce qu'elles dépendent de la langue du catalogue, de la manière dont vous nommez les produits, des axes de déclinaison employés et du lexique de votre secteur.

Les données complètes, le protocole et les résultats par requête figurent dans l'étude de cas : Benchmark de la recherche WooCommerce sur un catalogue de 20 000 produits.
Mots-clés :relevanssicelersearchextension recherche woocommercerecherche woocommercemeilisearchmeilleure extension recherche wordpressalternative relevanssirecherche produits wordpressfacettes woocommercesynonymes recherchetailles recherche woocommerceindex inversé