Le WordPress d'aujourd'hui, décodé pour les développeurs

Blocs Gutenberg

Elasticsearch contre Meilisearch pour un bloc de recherche B2B

Comparatif de coût d'exploitation et de pertinence entre Elasticsearch et Meilisearch pour un bloc de recherche de références techniques dans un catalogue industriel.

Par WordPress Développement • 1 mai 2023 • 4 min de lecture • Aucun commentaire
Elasticsearch contre Meilisearch pour un bloc de recherche B2B

Un catalogue industriel de douze mille références, chacune avec sa désignation, son code fournisseur, ses caractéristiques techniques et parfois plusieurs synonymes commerciaux : voilà le terrain sur lequel on va comparer deux moteurs de recherche pour alimenter un bloc de recherche B2B, sans faire intervenir Algolia, déjà traité par ailleurs dans une comparaison distincte.

Le bloc en question doit renvoyer des résultats pertinents même quand la recherche contient une faute de frappe, un synonyme technique ou une référence partielle. C’est un terrain où la pertinence brute compte au moins autant que la vitesse de réponse.

Ce que chaque moteur demande à l’installation

Elasticsearch impose une architecture plus lourde : un cluster à dimensionner, une gestion de la mémoire JVM à surveiller, des index à optimiser manuellement pour de bonnes performances. Pour une équipe qui n’a pas de personne dédiée à l’exploitation d’un moteur de recherche, ce coût d’entrée pèse dès le premier jour.

Meilisearch propose une installation plus directe : un binaire unique, une configuration par fichier ou par appel API, une indexation qui démarre en quelques minutes sur un catalogue de cette taille. Le compromis se paie ailleurs, sur la richesse des règles de pertinence disponibles.

Le comparatif chiffré sur le catalogue étudié

CritèreElasticsearchMeilisearch
Temps d’indexation initiale (12 000 fiches)4 min 20 s38 s
Mémoire vive nécessaire en fonctionnement2 Go minimum recommandé512 Mo suffisants
Recherche tolérante aux fautes de frappeÀ configurer (fuzziness)Activée par défaut
Règles de pertinence personnaliséesTrès fines (boosts, scripts)Plus limitées, mais suffisantes ici
Effort d’exploitation continueÉlevéFaible
L'essentiel à retenir : Meilisearch demande moins d'exploitation quotidienne pour un catalogue moyen ; Elasticsearch garde l'avantage sur des règles de pertinence très fines ; Le choix dépend surtout du volume de références et de l'équipe disponible

Brancher le bloc de recherche côté WordPress

Dans les deux cas, le bloc ne parle jamais directement au moteur de recherche depuis le navigateur : une route REST personnalisée sert d’intermédiaire, ce qui évite d’exposer une clé d’API en clair côté client :

register_rest_route( 'catalogue/v1', '/recherche', array(
    'methods'             => 'GET',
    'callback'            => 'catalogue_rechercher_reference',
    'permission_callback' => '__return_true',
    'args'                => array(
        'q' => array( 'required' => true, 'type' => 'string' ),
    ),
) );

function catalogue_rechercher_reference( $requete ) {
    $terme = sanitize_text_field( $requete->get_param( 'q' ) );
    return catalogue_interroger_moteur_recherche( $terme );
}

La fonction catalogue_interroger_moteur_recherche diffère selon le moteur choisi, mais le contrat côté bloc reste identique : un terme en entrée, une liste de références en sortie.

Où Elasticsearch reprend l’avantage

Sur ce catalogue précis, l’équipe avait besoin de faire remonter en priorité les références encore en stock, puis celles récemment mises à jour, avec une pondération différente selon la catégorie de produit. Ce genre de règle de score composite reste plus naturel à exprimer avec les fonctions de score d’Elasticsearch qu’avec les options de tri disponibles nativement dans Meilisearch.

Où Meilisearch reprend l’avantage

À l’inverse, la tolérance aux fautes de frappe et aux recherches partielles fonctionne dès l’installation avec Meilisearch, sans configuration additionnelle, ce qui a évité plusieurs semaines de réglage fin observées sur un projet comparable avec Elasticsearch.

Le verdict pour ce projet

Pour un catalogue de douze mille références, sans équipe dédiée à l’exploitation d’un moteur de recherche et sans besoin impératif de score composite très fin, Meilisearch a été retenu. Le gain en simplicité d’exploitation a pesé plus lourd que la finesse de pertinence supplémentaire qu’Elasticsearch aurait pu offrir, d’autant que les tests de recherche avec fautes de frappe donnaient déjà des résultats jugés satisfaisants par les utilisateurs métier.

Le meilleur moteur de recherche n’est pas celui qui a le plus d’options de pertinence : c’est celui que l’équipe en place peut réellement exploiter dans la durée.

Notre verdict

Pour un catalogue industriel de taille moyenne et une équipe sans compétence dédiée à l’exploitation d’un moteur de recherche, Meilisearch offre un rapport simplicité-pertinence plus favorable. Elasticsearch reste préférable dès que les règles de score deviennent complexes ou que le volume de données dépasse largement ce que Meilisearch peut absorber sans effort d’exploitation supplémentaire.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi