1. Accueil
  2. Articles
6 min de lecture
14 vues

Intégration de la recherche full-text sur Laravel Cameroun avec Typesense et Laravel Scout

Image d'illustration pour Intégration de la recherche full-text sur Laravel Cameroun avec Typesense et Laravel Scout

Vous avez déjà essayé de retrouver un article que vous avez lu il y a 3 mois sur le site ? Ou de chercher un sujet de discussion que quelqu'un avait posté sur le forum ? Jusqu'à maintenant, la seule solution, c'était de naviguer page par page. Page 1, page 2, page 3... en espérant tomber dessus. Et si l'article est en page 8, bonne chance. Ce problème est réglé.

Le problème

Laravel Cameroun héberge aujourd'hui plus de 130 articles, 90+ threads de forum, 32 discussions et plus de 600 membres. Et ce nombre grandit chaque semaine. Sans recherche, retrouver un contenu spécifique devenait une galère. Si tu voulais partager le profil d'un développeur avec un recruteur, tu ne pouvais pas étant donné qu'aucune liste n'était disponible. Si tu cherchais un tutoriel sur Sanctum, tu devais parcourir les articles un par un.

Pour une plateforme communautaire qui veut devenir une référence francophone des développeurs, ne pas pouvoir chercher du contenu, c'est comme avoir une bibliothèque sans catalogue.

C'est quoi la recherche full-text ?

La recherche full-text, c'est la capacité de chercher dans le contenu complet d'un texte, pas juste dans un titre ou un champ précis. Quand tu tapes "comment configurer Sanctum" dans une barre de recherche full-text, le moteur va fouiller dans les titres, le corps des articles, les tags, les noms d'auteurs partout, et te retourner les résultats les plus pertinents en quelques millisecondes.

C'est ce que fait Google, mais à l'échelle d'un site. Et pour faire ça proprement, il faut un moteur de recherche dédié.

C'est quoi Typesense ?

Typesense est un moteur de recherche open-source conçu pour la rapidité et la simplicité. Il a été créé comme une alternative open-source à Algolia, avec un objectif clair : offrir une recherche instantanée, tolérante aux fautes de frappe, sans la complexité d'un Elasticsearch et sans le coût d'un Algolia.

Concrètement, Typesense :

  • Retourne des résultats en quelques millisecondes — les résultats apparaissent pendant que tu tapes, pas après avoir cliqué sur "Rechercher"
  • Corrige les fautes de frappe automatiquement — si tu tapes "lravel" au lieu de "laravel", il comprend quand même
  • Gère les accents — "développer" et "developper" retournent les mêmes résultats, ce qui est indispensable pour une communauté francophone
  • Est 100% open-source — le code est sur GitHub avec plus de 24 000 stars
  • S'auto-héberge — on le fait tourner sur notre propre infrastructure via Docker, sans dépendre d'un service cloud externe

Pourquoi Typesense et pas les autres ?

Il existe plusieurs moteurs de recherche sur le marché. Avant de choisir Typesense, on a évalué les principales alternatives.

Algolia — puissant mais coûteux

Algolia est le leader du marché de la recherche-as-a-service. Des entreprises comme Stripe, Twitch ou Slack l'utilisent. La qualité de recherche est excellente, avec des fonctionnalités avancées comme la personnalisation par IA et l'analytics.

Le problème pour nous : Algolia est un service cloud propriétaire, on ne peut pas l'héberger soi-même. Et surtout, la facturation est par requête — au-delà de 10 000 recherches gratuites par mois, chaque recherche coûte $0.50 pour 1 000 requêtes. Pour un site communautaire avec du trafic organique qui grandit, le coût devient vite imprévisible.

Meilisearch — l'alternative française

Meilisearch est un moteur de recherche open-source développé en France. Il est rapide, simple à configurer, et a une communauté très active (47 000+ développeurs). C'est un excellent choix et on l'a sérieusement considéré.

Ce qui nous a fait hésiter : certaines fonctionnalités avancées (recherche fédérée, analytics, recherche conversationnelle) sont réservées à la version Cloud ou Enterprise payante. Pour notre usage actuel, c'est suffisant, mais on a préféré une solution où toutes les fonctionnalités sont disponibles en auto-hébergé.

Elasticsearch — le mastodonte

Elasticsearch est la référence absolue pour la recherche à grande échelle. Il alimente les systèmes de log, l'observabilité, l'analytics de sécurité de milliers d'entreprises. Il peut gérer des pétaoctets de données.

Mais pour de la recherche de contenu sur un site communautaire, c'est disproportionné. La configuration est complexe, la maintenance demande une expertise dédiée, et la tolérance aux fautes de frappe nécessite une configuration manuelle (contrairement à Typesense où c'est natif). C'est comme utiliser un camion-citerne pour arroser un jardin.

Pourquoi Typesense est le bon choix pour nous

Critère Typesense Algolia Meilisearch Elasticsearch
Open-source Oui Non Oui Oui
Auto-hébergeable Oui Non Oui Oui
Typo-tolerance native Oui Oui Oui Configuration manuelle
Facturation par requête Non Oui Non Non
Complexité d'installation Faible Aucune (SaaS) Faible Élevée
Driver Laravel Scout Oui Oui Oui Communautaire

Pour notre communauté auto-hébergée, Typesense coche toutes les cases : open-source, gratuit en self-hosted, tolérance native aux accents et fautes de frappe, et une intégration directe avec Laravel Scout.

Ce qu'on peut chercher sur Laravel Cameroun

Quand tu ouvres la barre de recherche avec Cmd+K (Mac) ou Ctrl+K (Windows), tu peux :

CleanShot 2026-03-23 at 15.15.52@2x.png

  • Chercher un article par titre ou contenu — tape "Sanctum" et tu trouves tous les articles qui en parlent
  • Chercher un sujet de forum — tape ta question et vois si quelqu'un l'a déjà posée
  • Chercher une discussion — retrouve les échanges de la communauté
  • Chercher un membre — retrouve le profil d'un développeur en tapant son nom
  • Naviguer rapidement — accède aux pages principales du site sans cliquer

Les résultats apparaissent en temps réel pendant que tu tapes. Pas besoin de cliquer sur un bouton "Rechercher".

Contenu Champs recherchables
Articles Titre, contenu, tags, auteur
Forum Titre, contenu, channels, auteur
Discussions Titre, contenu, tags, auteur
Membres Nom, username, bio

Comment ça fonctionne sous le capot

Pour les développeurs curieux, voici comment c'est câblé.

Laravel Scout est le package officiel de Laravel pour la recherche full-text. Il fournit une couche d'abstraction qui permet de brancher différents moteurs de recherche (Algolia, Meilisearch, Typesense, ou même la base de données) sans changer le code applicatif. On ajoute le trait Searchable sur nos modèles Eloquent et Scout s'occupe de synchroniser les données avec le moteur de recherche.

Chaque fois qu'un article est publié, un thread est créé ou un utilisateur s'inscrit, Scout envoie automatiquement les données à Typesense en arrière-plan via une queue Redis. Le site ne ralentit pas, l'indexation se fait de manière asynchrone.

La barre de recherche utilise Fuse.js côté navigateur pour filtrer instantanément les commandes de navigation (pas de requête serveur pour ça), et Typesense côté serveur pour la recherche de contenu. Le tout est orchestré par un composant Livewire avec Alpine.js pour la réactivité de l'interface.

La recherche est disponible dès maintenant sur laravel.cm. Ouvre la barre avec Cmd+K et teste.