Zoeken in een database via LIKE '%query%' werkt, maar het schaalt slecht en biedt slechte UX. Laravel Scout combineert je Eloquent-modellen met een zoekengine en maakt full-text search een plezier.

Wat is Laravel Scout?

Scout is een officieel Laravel-pakket dat een uniforme API biedt voor meerdere zoekdrivers: Meilisearch, Algolia, Typesense en een database driver voor kleine projecten.

Je voegt de Searchable trait toe aan je model, en Scout synchroniseert automatisch de data naar de zoekengine bij create/update/delete.

Meilisearch: de beste keuze voor self-hosted

Meilisearch is een open-source zoekengine die extreem snel is, typo-tolerant en makkelijk te hosten. Ideaal voor projecten die niet afhankelijk willen zijn van een betaalde cloudservice.

# Start Meilisearch via Docker
docker run -d -p 7700:7700 getmeili/meilisearch

Implementatie

Installeer Scout en de Meilisearch driver:

composer require laravel/scout
composer require meilisearch/meilisearch-php http-interop/http-factory-guzzle

Voeg Searchable toe aan je model:

use Laravel\Scout\Searchable;

class Product extends Model {
    use Searchable;

    public function toSearchableArray() {
        return [
            'name' => $this->name,
            'description' => $this->description,
            'category' => $this->category->name,
        ];
    }
}

Zoeken:

Product::search('sneaker')->get();

Typo-tolerantie in de praktijk

Meilisearch vindt “sneakrs” automatisch bij het zoeken naar “sneakers”. Dit is out-of-the-box gedrag — geen extra configuratie nodig. Gebruikers zoeken namelijk zelden perfect.

Filteren en sorteren

Scout ondersteunt filters en sortering via Meilisearch’s query API:

Product::search('sneaker')
    ->where('in_stock', true)
    ->orderBy('price', 'asc')
    ->get();

Wanneer kies je Scout + Meilisearch?

Voor maatwerk applicaties met een zoekfunctie is dit de beste keuze. Of het nu een product catalogus, een klantenportaal of een kennisbank is.

Bij Meesy integreren we Scout standaard in Laravel ontwikkeling projecten waar zoekfunctionaliteit cruciaal is.

Conclusie

Laravel Scout met Meilisearch maakt full-text search toegankelijk voor elk project. Snel, typo-tolerant en eenvoudig te onderhouden. Neem contact op als je een zoekfunctie wil bouwen die echt werkt.

Heb je vragen over dit onderwerp of wil je samenwerken?

Neem contact op