Dans le développement d’applications web modernes, offrir une expérience de recherche rapide et pertinente est essentiel. Typesense, un moteur de recherche open-source, s’intègre parfaitement avec Laravel grâce à Laravel Scout, permettant ainsi d’ajouter facilement une recherche full-text performante à vos modèles Eloquent.

Typesense se distingue par sa rapidité et sa tolérance aux fautes de frappe, offrant des résultats instantanés et pertinents. Son intégration avec Laravel Scout simplifie la mise en place de la recherche en utilisant des traits et des configurations familières aux développeurs Laravel.

Pour intégrer Typesense dans une application Laravel, commencez par installer les packages nécessaires via Composer :

composer require laravel/scout
composer require typesense/typesense-php

Ensuite, configurez Laravel Scout pour utiliser Typesense en ajoutant les variables suivantes à votre fichier .env :

SCOUT_DRIVER=typesense
TYPESENSE_API_KEY=your_api_key
TYPESENSE_HOST=localhost
TYPESENSE_PORT=8108
TYPESENSE_PROTOCOL=http

Dans vos modèles Eloquent que vous souhaitez rendre recherchables, utilisez le trait Searchable et définissez la méthode toSearchableArray pour spécifier les champs à indexer :

<?php
 
namespace App\Models;
 
use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;
 
class Article extends Model
{
    use Searchable;
 
    public function toSearchableArray(): array
    {
        return [
            'id' => (string) $this->id,
            'title' => $this->title,
            'content' => $this->content,
            'published_at' => $this->published_at->timestamp,
        ];
    }
}

Une fois la configuration terminée, vous pouvez indexer vos données en utilisant la commande Artisan suivante :

php artisan scout:import App\\Models\\Article

Cette intégration offre plusieurs avantages notables. Elle permet une recherche en temps réel avec une tolérance aux fautes, améliorant ainsi l’expérience utilisateur. De plus, la configuration est relativement simple pour les développeurs familiers avec Laravel. Cependant, il est important de noter que la qualité des résultats dépend de la définition précise des champs indexés et de la configuration adéquate de Typesense.

En conclusion, l’intégration de Typesense avec Laravel via Laravel Scout est une solution efficace pour ajouter une recherche full-text rapide et pertinente à vos applications. Elle combine la puissance de Typesense avec la simplicité de Laravel, offrant ainsi une expérience de développement fluide et une amélioration significative de la fonctionnalité de recherche pour les utilisateurs finaux.

Sources