
Definición en una frase
Sistema que almacena vectores y permite recuperar elementos próximos según una métrica de similitud.
Qué es una base de datos vectorial
Una base de datos vectorial es un sistema que almacena vectores —listas de números que representan datos— y permite buscar los que están más próximos a un vector de consulta según una métrica determinada. Su propósito es facilitar búsquedas por similitud en conjuntos de representaciones numéricas, por ejemplo, para recuperar textos, productos o imágenes relacionados con una consulta.
La base de datos trabaja con los vectores que recibe. Un modelo u otro componente suele transformar el dato original en una representación numérica llamada embedding. La generación del embedding y la búsqueda posterior son operaciones distintas: almacenar vectores no significa que la base de datos haya creado esas representaciones, entendido el contenido o confirmado que dos elementos sean equivalentes.
En una aplicación, el vector suele asociarse a un identificador y puede acompañarse de metadatos, como una categoría o una fecha, y de una referencia al dato original. El contenido completo puede vivir en el mismo sistema o en otro. Qué tipos de datos acepta cada producto, qué funciones ofrece y cómo las implementa depende de ese producto; «base de datos vectorial» no designa una arquitectura única.
Qué guarda un registro y cómo se consulta
Un registro vectorial puede incluir un identificador, el vector, metadatos y una referencia al objeto asociado. Por ejemplo, para un fragmento de documentación se podría guardar su vector junto con un identificador de documento, el idioma y la ubicación del fragmento. El texto original podría mantenerse en la base de datos o recuperarse desde otro almacenamiento.
El recorrido habitual tiene varias etapas. La aplicación obtiene el dato que quiere indexar y lo envía a un modelo de embeddings; recibe un vector y lo almacena asociado a un identificador. Cuando llega una consulta, el sistema genera —o recibe de otro componente— un vector de consulta compatible y pide los vecinos más cercanos. Después, la aplicación puede recuperar los datos originales, aplicar reglas de negocio o presentar los resultados.
La compatibilidad entre los vectores almacenados y el de consulta importa. Si se producen con modelos distintos, configuraciones incompatibles o espacios de representación que no se corresponden, la comparación puede no ser útil. La base de datos no puede corregir automáticamente una representación inadecuada.
Del dato a los resultados
- 01Preparar el dato y generar su embedding con un modelo adecuado para la tarea.
- 02Guardar el vector con un identificador y, si hace falta, metadatos o una referencia al original.
- 03Convertir la consulta en un vector compatible y buscar los vecinos según la métrica elegida.
- 04Recuperar los datos asociados y evaluar los resultados con reglas y criterios propios de la aplicación.
Cómo se mide la cercanía
La búsqueda necesita una regla para comparar vectores. Entre las medidas habituales están la similitud coseno, el producto interno y la distancia euclidiana. No son nombres intercambiables: calculan relaciones diferentes y sus resultados pueden ordenarse o interpretarse de manera distinta.
La similitud coseno compara la orientación de los vectores; la distancia euclidiana mide la separación entre sus puntos; el producto interno combina componentes y puede depender de la magnitud de los vectores. La elección no debería hacerse solo por costumbre. Debe corresponder al modelo, a la forma en que se generaron o normalizaron sus vectores y al objetivo de la aplicación.
Conviene comprobar la configuración de extremo a extremo: qué métrica ofrece la implementación, cuál se usa en el índice y cómo se ordenan o presentan los resultados. Una etiqueta como «similitud» no garantiza que dos productos calculen el mismo valor ni que un valor alto tenga idéntica interpretación en todos ellos.
Orientación para elegir una medida
La tabla es conceptual, no sustituye la documentación del modelo ni de la implementación concreta.
| Medida | Qué compara, en términos generales | Qué comprobar |
|---|---|---|
| Similitud coseno | La orientación relativa de los vectores. | Si el modelo y la implementación están configurados para esta medida y cómo se ordenan sus resultados. |
| Producto interno | La suma de productos entre componentes; la magnitud puede influir. | Si la magnitud tiene el comportamiento esperado para los vectores generados. |
| Distancia euclidiana | La separación geométrica entre los vectores. | Si la distancia y su ordenación corresponden al objetivo y a la configuración del sistema. |
Búsqueda exacta y búsqueda aproximada
En una búsqueda exacta, el sistema compara la consulta con todos los vectores del conjunto considerado y devuelve los mejores resultados según la métrica. Es una referencia clara para evaluar la calidad, pero el trabajo puede crecer con el tamaño de la colección.
La búsqueda aproximada de vecinos, normalmente abreviada como ANN, usa estructuras de índice para explorar una parte del espacio en lugar de comparar exhaustivamente cada vector. Puede reducir el tiempo de consulta a cambio de no garantizar que siempre encuentre exactamente los mismos vecinos que una búsqueda exhaustiva. El grado de aproximación y el coste dependen del índice, sus parámetros y la carga de trabajo.
HNSW es un ejemplo de índice para búsqueda aproximada basado en grafos jerárquicos. No es un requisito para toda base de datos vectorial ni la única forma de indexar. La documentación de sistemas concretos puede describir distintos índices y compromisos; por eso, un nombre de índice por sí solo no permite anticipar el rendimiento de una aplicación real.
Una comparación útil consiste en ejecutar consultas representativas contra una búsqueda exacta y contra el índice aproximado, y observar conjuntamente calidad de recuperación y latencia. Medir solo rapidez puede ocultar resultados omitidos; medir solo coincidencia con la búsqueda exacta no indica si el sistema responde a la necesidad de los usuarios.
Decisión inicial: exacta o aproximada
| Situación | Opción que conviene evaluar | Compromiso principal |
|---|---|---|
| Colección pequeña o necesidad de referencia de calidad | Búsqueda exacta | Compara todos los candidatos considerados; el coste puede crecer con el conjunto. |
| Colección grande o requisitos de latencia exigentes | Índice ANN, como HNSW si está disponible y resulta adecuado | Puede responder más rápido, pero la recuperación puede diferir de la búsqueda exacta. |
| Requisitos aún desconocidos | Medir ambas opciones con consultas y datos representativos | Hay que definir una medida de calidad y un objetivo de latencia antes de decidir. |
Filtros y búsqueda combinada
Los metadatos permiten describir aspectos del registro que no están necesariamente codificados en el vector. Un filtro puede restringir la búsqueda a una categoría, un idioma, una fecha o elementos disponibles. De ese modo, una consulta de similitud puede operar sobre un subconjunto relevante, si la implementación y la aplicación admiten esa combinación.
Los filtros también pueden cambiar el comportamiento práctico de una consulta. Por ejemplo, si un filtro deja muy pocos candidatos o selecciona una parte muy específica del índice, el sistema podría necesitar una estrategia distinta para recuperar resultados. No se debe suponer que todos los productos aplican filtros en el mismo momento, con las mismas garantías o con idéntico efecto sobre el índice.
La búsqueda vectorial puede combinarse en una aplicación con búsqueda léxica, que encuentra coincidencias de palabras, y con reglas explícitas. Esto puede ser útil cuando importan tanto el parecido conceptual como términos exactos, identificadores o restricciones. La búsqueda híbrida no debe darse por sentada como una capacidad universal: puede requerir funciones específicas o coordinación en la propia aplicación.
Tres ejemplos aplicados
Los siguientes casos describen usos posibles, no resultados garantizados. En todos ellos, la búsqueda recupera candidatos a partir de representaciones; la interpretación y validación corresponden al sistema y al contexto de uso.
blocks
type