Definición:
Una base de datos vectorial es un sistema que almacena e indexa vectores numéricos y permite recuperar elementos mediante búsquedas por similitud. Estos vectores pueden representar características de textos, imágenes, audio u otros datos.
Además de los vectores, puede conservar identificadores, metadatos y referencias al contenido original. Se utiliza en búsqueda semántica, sistemas de recomendación y aplicaciones de inteligencia artificial que necesitan localizar información relacionada con una consulta.
Índice de contenidos
Vectores, embeddings y contenido original
Un vector es una lista de valores numéricos. En muchas aplicaciones, un modelo de embeddings transforma el contenido en vectores cuyas relaciones permiten comparar determinadas características de los datos.
El modelo y la base de datos desempeñan funciones diferentes: el primero genera la representación; la segunda la almacena y permite consultarla. Algunos productos integran ambos pasos, pero no todas las bases vectoriales generan embeddings por sí mismas.
El vector tampoco sustituye necesariamente al documento original. Un sistema puede conservar el texto junto al vector o guardar una referencia para recuperarlo desde otro almacenamiento. Los metadatos permiten asociar información como el idioma, la fecha, la categoría o la fuente.
Cómo funciona una búsqueda vectorial
La consulta se representa mediante un vector compatible con los almacenados. En una búsqueda semántica de texto, esto suele requerir utilizar el mismo modelo de embeddings o modelos diseñados para trabajar en un espacio común.
El sistema compara los vectores mediante una medida de distancia o similitud, como la distancia euclidiana, la similitud del coseno o el producto escalar. La elección depende de la representación y de la configuración utilizada.
Después devuelve los elementos más próximos según ese criterio. Por ejemplo, una consulta sobre cómo recuperar una contraseña puede localizar un documento sobre restablecimiento de credenciales aunque no repita exactamente las mismas palabras.
La proximidad matemática no equivale por sí sola a relevancia, veracidad o actualidad. Los resultados dependen del modelo, del contenido indexado y de cómo se formula la consulta.
Búsqueda exacta, aproximada y filtros
Una búsqueda exacta identifica los vecinos más cercanos según la métrica elegida. Cuando crece el volumen de vectores, puede resultar costoso comparar la consulta con todos ellos.
Los índices de búsqueda aproximada, como HNSW, permiten acelerar la recuperación a cambio de que algunos vecinos relevantes puedan quedar fuera de los resultados. Sus parámetros influyen en la velocidad, el consumo de memoria y la capacidad de recuperar los elementos más cercanos.
Los filtros por metadatos añaden condiciones, como consultar únicamente documentos de un idioma o una categoría. Su combinación con índices aproximados depende de la implementación y puede afectar a los resultados.
También es posible combinar búsqueda vectorial con búsqueda léxica, basada en términos. Esta búsqueda híbrida permite aprovechar tanto las relaciones semánticas como las coincidencias de nombres, códigos o expresiones concretas.
Diferencia con una base de datos relacional
Una base de datos relacional organiza información mediante tablas y relaciones. Una base vectorial pone el foco en almacenar vectores y recuperarlos por similitud. Estas capacidades no son excluyentes.
Existen sistemas especializados en vectores y bases de datos de propósito general que incorporan funciones vectoriales. Por ejemplo, PostgreSQL puede almacenar vectores y realizar búsquedas de vecinos cercanos mediante la extensión pgvector.
Por tanto, no es correcto afirmar que las bases relacionales solo permiten coincidencias exactas o que no pueden trabajar con información no estructurada. La elección depende de las consultas, los datos y las necesidades de cada aplicación.
Aplicaciones en búsqueda, recomendaciones y RAG
Las bases vectoriales pueden localizar documentos relacionados con una pregunta, productos con características similares o imágenes próximas a una referencia.
En un sistema RAG, pueden intervenir en la recuperación de fragmentos que se proporcionan como contexto a un modelo de lenguaje. La recuperación y la generación son etapas distintas: la base de datos no redacta necesariamente la respuesta ni reentrena el modelo.
RAG tampoco exige siempre una base vectorial; puede utilizar búsqueda léxica, híbrida u otros mecanismos de recuperación.
La utilidad del sistema depende de mantener el contenido actualizado, conservar referencias a sus fuentes y aplicar los permisos adecuados. Almacenar embeddings no convierte automáticamente la información en anónima ni garantiza la privacidad.
