Búsqueda vectorial con pgvector en Laravel 13

Avanzado
Laravel
Laravel
Actualizado: 27/03/2026

Búsqueda semántica

La búsqueda vectorial permite encontrar documentos o registros similares en significado, no solo por palabras clave. Se almacenan los embeddings de cada documento y se buscan los vectores más próximos a la consulta.

Laravel 13 añade soporte nativo para consultas whereVectorSimilarTo y columnas vector en migraciones cuando usas PostgreSQL con la extensión pgvector.

Migración con columna vector

use Illuminate\Database\Schema\Blueprint;

Schema::ensureVectorExtensionExists(); // Crea la extensión pgvector si no existe

Schema::create('documents', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->text('content');
    $table->vector('embedding', dimensions: 1536); // dimensiones del modelo de embeddings
    $table->timestamps();
});

El tipo vector almacena los embeddings generados por el AI SDK u otro servicio.

Consultas por similitud

Una vez almacenados los embeddings, puedes buscar los documentos más similares a una frase:

$documentos = Document::query()
    ->whereVectorSimilarTo('embedding', 'mejores bodegas de Napa Valley')
    ->limit(10)
    ->get();

Laravel genera la consulta SQL apropiada (por ejemplo, operador <=> de pgvector para distancia por coseno) y compara el embedding de la frase de búsqueda con los vectores almacenados.

Flujo completo

  1. Al crear o actualizar un documento, genera su embedding con el AI SDK.
  2. Almacena el embedding en la columna embedding.
  3. Para buscar, genera el embedding de la consulta del usuario y usa whereVectorSimilarTo con el texto o con el vector precalculado.
Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Laravel es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de Laravel

Explora más contenido relacionado con Laravel y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

Implementar búsqueda semántica usando columnas vector con pgvector y Eloquent.

Cursos que incluyen esta lección

Esta lección forma parte de los siguientes cursos estructurados con rutas de aprendizaje