La búsqueda es una parte esencial de cualquier aplicación moderna. Ya sea que tengas un blog, un e-commerce o un panel administrativo con cientos de registros, una búsqueda lenta puede arruinar la experiencia del usuario.
Laravel Scout simplifica la indexación y búsqueda full-text integrando potentes motores como Algolia, Meilisearch, o incluso bases locales (database driver).
En esta guía aprenderás a implementar paso a paso Laravel Scout en Laravel 12 con ejemplos reales y optimizaciones de rendimiento.
⚙️ 1. Instalación de Laravel Scout
composer require laravel/scout
Una vez instalado, publica su configuración:
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
Esto creará el archivo
config/scout.php donde podrás definir el driver de búsqueda (por defecto: algolia o database).🌐 2. Configuración del Driver
Usando Algolia
Crea una cuenta gratuita en https://www.algolia.com y obtén tus claves:
ALGOLIA_APP_ID=your-app-id ALGOLIA_SECRET=your-secret-key SCOUT_DRIVER=algolia
Usando Base de Datos (sin servicios externos)
SCOUT_DRIVER=database
Esto permite realizar búsquedas locales utilizando consultas SQL LIKE, ideal para entornos sin conexión o proyectos pequeños.
🧩 3. Indexar un Modelo
Para hacer un modelo buscable, simplemente usa el trait
Searchable:use Laravel\Scout\Searchable; class Post extends Model { use Searchable; protected $fillable = ['titulo', 'contenido', 'resumen']; public function toSearchableArray(): array { return [ 'titulo' => $this->titulo, 'contenido' => $this->contenido, ]; } }
Este método define qué campos serán indexados.
⚡ 4. Crear y Actualizar el Índice
Laravel Scout automáticamente sincroniza tus modelos:
php artisan scout:import "App\Models\Post"
Cada vez que creas, actualizas o eliminas un registro, Scout actualiza el índice en segundo plano.
🔍 5. Realizar Búsquedas
Buscar es tan sencillo como:
$results = Post::search('laravel')->get();
También puedes aplicar filtros Eloquent combinados:
$posts = Post::search('livewire')->where('status', 'publicado')->get();
⚙️ 6. Personalización y Paginación
Scout se integra con la paginación estándar de Laravel:
$posts = Post::search('api')->paginate(10);
Y permite personalizar el orden o relevancia según tus reglas de negocio.
📊 7. Sincronización Automática
Para mantener tu índice actualizado:
php artisan queue:work
Scout usa colas para procesar la sincronización sin afectar el rendimiento.
🚀 8. Integración con Livewire 3
En una tabla con búsqueda reactiva:
use Livewire\Component; use App\Models\Post; class BuscarPost extends Component { public $query = ''; public function render() { $posts = Post::search($this->query)->get(); return view('livewire.buscar-post', compact('posts')); } }
🧠 9. Consejos de Optimización
✅ Usa Scout Database Driver para búsquedas simples o desarrollo local.
✅ Para producción, Algolia o Meilisearch ofrecen mayor velocidad.
✅ Define correctamente los campos de
toSearchableArray() para evitar sobreindexar.✅ Usa colas para mantener la app rápida durante la indexación.
🧱 10. Conclusión
Laravel Scout te permite agregar búsqueda full-text profesional a tus proyectos en minutos.
Combinado con Livewire 3, puedes crear interfaces reactivas y potentes sin necesidad de JavaScript complejo.
Empieza hoy y lleva la experiencia de tus usuarios al siguiente nivel.
🔗 Enlaces Recomendados
Algolia
Meilisearch
We can show a free SEO Backlink example that could drive more traffic and customers to laravelconmanuel.dev
Interested?