Laravel Scout — простой слой, синхронизирующий Eloquent-модели с поисковым движком. LIKE-запросы на больших таблицах медленные и не ранжируют результат; Scout даёт быстрый ранжированный поиск через Post::search('...').

Как это работает

При сохранении модели observer отправляет её в индекс. При поиске движок возвращает подходящие ID, а Scout достаёт модели из базы через WHERE id IN (...).

Индексация и поиск в Scout
Индексация и поиск в Scout

Установка и выбор драйвера

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
Драйверы Scout