Faut-il choisir Meilisearch, Typesense ou Elasticsearch pour indexer un catalogue de négoce B2B alimenté par une API REST WordPress ? La question s’est posée concrètement pour ce projet, avec plusieurs milliers de références produits, des filtres par catégorie technique et une recherche textuelle qui devait tolérer les fautes de frappe des clients professionnels.
Les trois moteurs partagent un point commun essentiel pour ce cas : aucun n’exige de licence commerciale pour être utilisé en production, contrairement à certaines solutions propriétaires. Leurs différences se situent ailleurs, dans la facilité d’exploitation et dans le type de requêtes qu’ils encaissent le mieux.
Meilisearch : la mise en route la plus rapide
Meilisearch a été le premier testé, avec pour objectif de mesurer le temps nécessaire entre l’installation et une première recherche fonctionnelle. L’indexation depuis les données exposées par l’API REST WordPress s’est faite via un simple appel HTTP, sans configuration de mapping préalable :
$ curl -X POST 'http://localhost:7700/indexes/produits/documents' \
-H 'Content-Type: application/json' \
--data-binary @produits.json
La tolérance aux fautes de frappe fonctionne dès l’indexation par défaut, sans configuration additionnelle, ce qui a permis de couvrir le besoin de recherche textuelle tolérante en quelques heures de travail seulement.
Typesense : des facettes très rapides
Typesense a montré son intérêt principal sur les filtres à facettes, très nombreux dans ce catalogue B2B (matière, diamètre, norme, fournisseur). Les temps de réponse mesurés sur des filtres combinés restaient inférieurs à ceux de Meilisearch sur ce projet précis, au prix d’une définition de schéma plus explicite à écrire en amont :
{
"name": "produits",
"fields": [
{ "name": "nom", "type": "string" },
{ "name": "matiere", "type": "string", "facet": true },
{ "name": "diametre", "type": "float", "facet": true }
]
}

Elasticsearch : la puissance, au prix de la complexité
Elasticsearch reste le moteur le plus riche des trois en matière d’agrégations et de requêtes complexes, mais aussi le plus exigeant à administrer correctement : gestion de cluster, dimensionnement de la mémoire, mapping explicite de chaque champ avant indexation. Pour ce projet de taille moyenne, cette complexité n’a pas trouvé de justification suffisante.
Tableau comparatif sur les critères de ce projet
| Critère | Meilisearch | Typesense | Elasticsearch |
|---|---|---|---|
| Temps de mise en route | Quelques heures | Une journée | Plusieurs jours |
| Facettes combinées | Correct | Très rapide | Puissant mais complexe |
| Effort d’administration | Faible | Faible à modéré | Élevé |
Synchroniser l’index depuis WordPress
Quel que soit le moteur retenu, la synchronisation depuis WordPress a suivi le même principe : un hook sur la publication ou la mise à jour d’un produit déclenche un appel vers l’API du moteur de recherche choisi, en réutilisant les données déjà exposées par la route REST du catalogue plutôt que de dupliquer la logique de sérialisation.
- Un hook sur la publication déclenche l’indexation d’un document unique
- Une commande WP-CLI dédiée permet de réindexer l’intégralité du catalogue à la demande
- Un identifiant commun entre WordPress et l’index évite toute ambiguïté lors des mises à jour
Le moteur de recherche le plus puissant n’est jamais le meilleur choix par défaut ; c’est celui dont la complexité d’exploitation reste proportionnée au volume réel de données à indexer.
Un point commun aux trois solutions à ne pas négliger
Quel que soit le moteur choisi, aucun des trois ne remplace la base de données WordPress : ils constituent chacun un index secondaire, à reconstruire intégralement en cas de perte, sans jamais devenir la source de vérité du catalogue. Cette distinction, évidente sur le papier, a pourtant nécessité une documentation explicite auprès de l’équipe projet, pour éviter qu’une modification faite directement dans l’index ne soit un jour prise à tort pour une modification pérenne du catalogue.
Notre verdict
Pour ce catalogue de négoce B2B, Typesense a été retenu, en raison de la rapidité de ses filtres à facettes combinés, essentiels dans ce contexte où les clients professionnels affinent leur recherche par plusieurs critères techniques simultanément. Meilisearch aurait constitué un choix tout aussi défendable pour un catalogue avec moins de facettes et davantage de recherche textuelle libre. Ce comparatif ne couvre pas les solutions propriétaires du marché, hors périmètre volontairement fixé pour ce projet.