Laravel Scout is a simple layer that syncs Eloquent models with a search engine. LIKE queries are slow on large tables and do not rank results; Scout gives fast, ranked search through Post::search('...').

How it works

When a model is saved an observer sends it to the index. On search the engine returns matching IDs and Scout loads the models with WHERE id IN (...).

Indexing and searching in Scout
Indexing and searching in Scout

Installation and driver choice

bash
composer require laravel/scout
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"

# Meilisearch driver
composer require meilisearch/meilisearch-php http-interop/http-factory-guzzle
docker run -d -p 7700:7700 -e MEILI_MASTER_KEY=masterKey getmeili/meilisearch:v1
bash
SCOUT_DRIVER=database
SCOUT_QUEUE=true

# for Meilisearch
# SCOUT_DRIVER=meilisearch
# MEILISEARCH_HOST=http://127.0.0.1:7700
# MEILISEARCH_KEY=masterKey
Scout drivers
Scout drivers