Guide de déploiement

Meilisearch vs Typesense : quel moteur de recherche self-hosted ?

Déployer sur un VPS Cloud →

Comparatif

Meilisearch vs Typesense : quel moteur de recherche self-hosted ?

Ajouter une recherche instantanée à votre app sans dépendre d'un SaaS, c'est possible avec Meilisearch ou Typesense. Deux moteurs de recherche orientés développeurs, qui s'auto-hébergent en quelques minutes. Comparons-les.

4 min de lecture6 étapes
Sommaire· Pourquoi self-héberger son moteur de recherche sur VPS1/4
  1. 01Pourquoi self-héberger son moteur de recherche sur VPS
  2. 02Les atouts d'un moteur de recherche auto-hébergé
  3. 03Prérequis : la RAM avant tout
  4. 04Déployer Meilisearch (ou Typesense) sur VPS

Pourquoi self-héberger son moteur de recherche sur VPS

Un moteur de recherche dédié remplace les LIKE '%...%' lents par une recherche instantanée, tolérante aux fautes de frappe et classée par pertinence. L'auto-héberger sur VPS vous épargne la facturation au nombre de recherches ou de documents des solutions SaaS, et garde votre index (donc vos données clients, votre catalogue) sur votre infrastructure. Meilisearch et Typesense sont conçus pour le 'search-as-you-type' : réponses en quelques millisecondes, API REST simple, typo-tolérance et facettes incluses. Meilisearch brille par sa simplicité de prise en main et la qualité de pertinence par défaut ; Typesense met l'accent sur la performance brute, le contrôle fin du ranking et le clustering haute disponibilité. Typesense garde tout l'index cherchable en RAM ; Meilisearch le stocke sur disque (LMDB, fichier mappé en mémoire) et se sert de la RAM comme cache : dans les deux cas, la mémoire dimensionne directement votre VPS.

Les atouts d'un moteur de recherche auto-hébergé

  • Recherche instantanée avec typo-tolérance, sans coder l'algorithme
  • Aucune facturation au document indexé ni à la requête
  • Index et données métier conserves sur votre VPS
  • Facettes, filtres et tri pour construire des interfaces de catalogue riches
  • API REST et clés à portée restreinte pour un usage côté frontend sécurisé
  • Synonymes et règles de pertinence ajustables à votre vocabulaire métier

Prérequis : la RAM avant tout

La RAM est la ressource critique : Typesense charge tout l'index cherchable en mémoire (sa documentation compte 2 à 3 fois la taille des champs cherchables), et Meilisearch répond d'autant plus vite que son index tient en mémoire. Pour quelques dizaines de milliers de documents, 1 à 2 Go de RAM et 1 vCPU suffisent. Pour des centaines de milliers à quelques millions de documents avec facettes, visez 4 Go et 2 vCPU. Un disque SSD accélère la persistance et le rechargement au démarrage. Il vous faut Docker et Compose, un sous-domaine (search.votredomaine.com) si vous exposez l'API au frontend, et un reverse proxy pour le TLS. Prévoyez une clé maître forte et des clés de recherche à portée limitée pour ne jamais exposer la clé admin côté navigateur.

Déployer Meilisearch (ou Typesense) sur VPS

  1. Définir le service Docker

    Déclarez getmeili/meilisearch (ou typesense/typesense), montez un volume pour la persistance de l'index et passez la clé maître via une variable d'environnement (MEILI_MASTER_KEY ou TYPESENSE_API_KEY), générée avec openssl rand -base64 32 et gardée dans .env. Pour Meilisearch, ajoutez MEILI_ENV=production : la clé maître (16 octets minimum) devient obligatoire et l'aperçu de recherche intégré est désactivé. Bindez le port 7700/8108 en local uniquement.

  2. Lancer et vérifier la santé

    Exécutez docker compose up -d puis testez curl http://127.0.0.1:7700/health. Une réponse available confirme que le moteur est prêt à recevoir des documents.

  3. Créer l'index et alimenter les données

    Envoyez vos documents en JSON par l'API (POST sur /indexes/produits/documents). Définissez les attributs cherchables, filtrables et triables ; en moteur de recherche, l'ordre de déclaration des attributs cherchables influence directement la pertinence.

  4. Exposer l'API derrière un reverse proxy

    Proxifiez search.votredomaine.com vers le port local avec Caddy ou Nginx pour le HTTPS. Limitez le CORS à votre domaine applicatif : dans le proxy pour Meilisearch, qui n'a pas d'option CORS, avec --cors-domains pour Typesense. Le CORS ne bloque que les navigateurs : c'est la clé à portée restreinte qui protège réellement le moteur.

  5. Générer des clés à portée restreinte

    Créez une clé limitée aux opérations de recherche sur un index donné, à utiliser côté navigateur. La clé maître ne doit jamais quitter le serveur ni apparaître dans le code frontend.

  6. Synchroniser avec votre base

    Mettez en place un job (webhook ou tache planifiée) qui pousse les créations et mises à jour vers l'index à chaque changement en base, pour garder la recherche cohérente avec la source de vérité.

Faites défiler le tableau

CritèreMeilisearchTypesense
Prise en mainTrès simple, pertinence par défaut excellenteSimple, contrôle plus explicite
Typo-toléranceNative et réglableNative, configurable par champ
Contrôle du rankingRègles de classement ordonnéesTrès granulaire (ranking par champ, poids)
Facettes / filtresComplètesComplètes et performantes
Haute disponibilitéRéplication et sharding réservés à l'édition EnterpriseClustering Raft intégré
Conso mémoireIndex sur disque, RAM utilisée comme cacheIndex cherchable entier en RAM
Recherche vectorielleSupportéeSupportée
Langage / déploiementRust, binaire unique (MIT ; édition Enterprise sous BUSL 1.1)C++, binaire unique (GPL v3)

Avant de surdimensionner votre VPS, n'indexez que les champs réellement cherchables. Stocker un gros texte HTML complet dans l'index gonfle inutilement la RAM : indexez le titre, les tags et un résumé, et gardez le contenu lourd en base, récupéré après le clic. Vous réduirez nettement l'empreinte mémoire sans perdre en pertinence.

Une recherche instantanée sur votre VPS

Le VPS Cloud ServOrbit avec template Docker vous laisse déployer Meilisearch ou Typesense avec reverse proxy et SSL, prêts à indexer votre catalogue en quelques minutes.