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
- Al crear o actualizar un documento, genera su embedding con el AI SDK.
- Almacena el embedding en la columna
embedding. - Para buscar, genera el embedding de la consulta del usuario y usa
whereVectorSimilarTocon el texto o con el vector precalculado.
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