Migration d'Algolia vers Meilisearch: comment nous avons réduit de 90% le coût de la recherche d'un site e-commerce
La recherche interne d'une boutique en ligne d'une certaine taille peut coûter plusieurs dizaines de milliers d'euros par an. Meilisearch, moteur open source qui s'installe sur un serveur propre, fait le même travail pour bien moins cher. Nous avons mené la migration complète d'un catalogue de treize mille produits totalisant 3,3 millions de recherches par mois, et nous l'avons mesurée: les performances sont équivalentes, le travail du service commercial est conservé dans son intégralité, et l'examen des données a fait apparaître bien d'autres choses.
La recherche interne d'un site e-commerce est une pièce essentielle du dispositifde vente, et elle représente un poste de dépense important dès lors que l'on souhaite maintenir un bon niveau d'efficacité en s'appuyant sur des solutionsd'entreprise.
Le service le plus répandu, Algolia, se paie à la consommation: chaque requête saisie par un client est facturée, et avec quelques millions de recherches parmois la note atteint sans peine plusieurs dizaines de milliers d'euros par an.
Meilisearch fait le même métier et n'a pas d'abonnement. C'est un moteur open source qui ne se loue pas mais s'installe sur un serveur, de sorte que la dépense cesse de dépendre du trafic et devient celle de l'infrastructure: pour une charge comparable, quelques milliers d'euros par an.
L'écart peut atteindre 90%, et la question qui suit est toujours la même: à quoi renonce-t-on?
Les performances restent les mêmes, et nous l'avons mesuré
Nous avons mené la migration complète d'un catalogue de treize mille produitsrecevant 3,3 millions de recherches par mois, en confrontant les deux systèmessur les mêmes requêtes, extraites du trafic réel.
Les temps de réponse sont équivalents, deux millièmes de seconde contre un, unécart qu'aucun client n'est en mesure de percevoir. Mais la comparaison qui compte n'est pas celle de deux listes de produits, c'est celle avec lecomportement des personnes. Nous avons pris quarante mille clics effectivementenregistrés, c'est-à-dire les articles que les clients avaient réellement ouvertsaprès une recherche, et vérifié dans combien de cas cet article figurait parmiles douze premiers résultats: 84% avec Algolia, 83,7% avec Meilisearch.
Configuration de Meilisearch
La migration du moteur est pourtant la partie la moins complexe. La difficulté tient à ce que l'on installe autour, et qui aborde la migration comme une simple installation se retrouve avec une recherche moins bonne que celle dont il disposait.
Le premier écueil concerne le travail du service commercial. Dans presque toutesles boutiques, quelqu'un a établi à la main, pour les recherches les plus importantes, quels produits présenter et dans quel ordre: les articles à meilleure marge, ceux qui sont en promotion, ceux dont il faut écouler le stock. Dans le cas que nous avons suivi, il s'agissait de soixante-dix-neuf sélections de ce type, constituées au fil des années, pour un total de sept centsoixante-dix positions décidées une par une.
Les transférer est possible, et dans notre projet nous les avons reconstituées intégralement. Les recopier telles quelles, en revanche, ne fonctionne pas: lesdeux moteurs n'évaluent pas de la même façon le moment où une sélection doitentrer en action, et comme ces conditions étaient presque toutes rédigées au pluriel, toutes les recherches au singulier seraient restées à découvert.
Le second écueil est le moteur lui-même. Meilisearch, à l'installation, traiteles pluriels, les mots incomplets et les dimensions écrites d'un seul tenant autrement qu'Algolia. Ce sont trois réglages à arrêter, non trois défauts, maisqui se borne à installer et à charger le catalogue obtient de moins bonsrésultats et en conclut, de bonne foi, que le moteur n'est pas à la hauteur.
La migration, en somme, est la partie facile. C'est la configuration qui décidedu résultat.
Une part essentielle est l'analyse des données
Pour reproduire fidèlement un système, il faut d'abord le comprendre, et en lecomprenant on trouve presque toujours davantage que ce que l'on cherchait.
Dans le cas présent, la recherche Algolia travaillait sur cinq champs du produit,dont deux étaient restés vides depuis le jour où le système avait été construit.La description étendue, celle qui contient les dimensions, les matériaux et les couleurs, existait sur 99% des articles mais n'avait jamais été rendue visible au moteur: en cherchant une essence de bois, on n'obtenait rien, alors que ce bois figurait sur plus de mille produits. Le même canapé, par ailleurs, était présent dix fois, une par tissu disponible: sur les douze emplacements du panneau de recherche, cinq ou six montraient le même canapé dans une autre teinte, et le client avait devant lui douze images pour six produits.
Remettre de l'ordre dans tout cela et procéder à l'enrichissement du catalogue,c'est-à-dire ajouter aux produits les mots par lesquels les clients les cherchen tréellement, a porté les emplacements utiles de la moitié à 96% et récupéré des milliers de recherches mensuelles qui auparavant ne renvoyaient rien. Aucune de ces interventions ne concerne le moteur: elles portent sur les données, et cesont elles qui pèsent le plus sur les ventes.
Notre prestation
Nous prenons en charge l'opération complète: analyse du système existant,migration, configuration et enrichissement du catalogue, avec la possibilitéd'héberger nous-mêmes Meilisearch et d'en assurer l'exploitation, de sortequ'aucune charge d'administration ne reste en interne.La méthode, les mesures et les résultats complets sont réunis dans notre livre blanc, téléchargeable ici. Qui préfère en parler d'abord peut nous écrire: levolume de recherches mensuelles et la taille du catalogue suffisent à établir, enquelques minutes, ce qu'il y a à économiser.