¿Qué son las Bases de Datos Vectoriales y los Embeddings?

Actualizado: septiembre de 2026

Un embedding es un vector numérico que captura significado; una base de datos vectorial almacena y busca esos vectores por similitud, no por igualdad. Las dos ideas son una sola capacidad: un modelo convierte texto (o imágenes, o audio) en una lista de números posicionada de modo que los significados parecidos caigan cerca, y una base de datos vectorial encuentra rápido los puntos más próximos. Ese es el truco entero detrás de la búsqueda semántica, las recomendaciones y RAG — y, para quien desarrolla aplicaciones, el titular práctico es que los embeddings son solo un campo que almacenas junto a los datos que describen.

Puntos clave

PreguntaRespuesta
EmbeddingUn vector donde significado parecido → puntos vecinos
Base de datos vectorialAlmacena vectores + responde “los más cercanos a este” con índices ANN
La métricaCoseno (lo usual para texto) · producto punto · euclidiana
Exacto vs. ANNPerfecto-pero-lineal vs. ~99% de recall, órdenes de magnitud más rápido
¿Necesitas una dedicada?En general no hasta ~10M+ de vectores — tu base probablemente ya lo hace

Embeddings, en concreto

Olvida las 1.536 dimensiones por un momento e imagina tres: un modelo de juguete que puntúa cada palabra en es-animal, es-vehículo, es-pequeño.

                animal  vehículo  pequeño
gatito           0.95      0.02     0.90
gato             0.93      0.01     0.60
camión           0.03      0.96     0.05
moto             0.04      0.94     0.55

"gatito" queda cerca de "gato" (ambos con animal alto) y lejos de "camión".
distancia(gatito, gato)   → pequeña  → similares
distancia(gatito, camión) → grande   → sin relación

Los modelos reales usan cientos o miles de dimensiones en lugar de tres,
aprendidas de los datos en vez de etiquetadas a mano — pero la intuición es exactamente esta:
el significado se vuelve geometría, y "similar" se vuelve "cercano".

La demostración famosa de que esto captura estructura real es la aritmética sobre los vectores: en word embeddings entrenados, rey − hombre + mujer cae cerca de reina. El significado convertido en coordenadas hace álgebra.

Cómo funciona la búsqueda por similitud

De los datos a los embeddings y a la búsqueda por similitudUn modelo embebe cada elemento en un vector almacenado en un índice vectorial. Al momento de la consulta, la consulta se embebe con el mismo modelo, y el índice devuelve los vectores más cercanos según una métrica de distancia, opcionalmente filtrados por metadatos como permisos, rankeados por similitud.

embedding

mismo modelo

filtro por metadatos / ACL

Elementos
(texto, imágenes, audio)

Vectores en un índice

Consulta

Vector de la consulta

Más cercanos por
coseno / punto / L2

Top-k resultados
similares

Un modelo embebe cada elemento en un vector almacenado en un índice vectorial. Al momento de la consulta, la consulta se embebe con el mismo modelo, y el índice devuelve los vectores más cercanos según una métrica de distancia, opcionalmente filtrados por metadatos como permisos, rankeados por similitud.

Tres métricas de distancia dominan: el coseno mide el ángulo entre los vectores (ignorando la longitud), el producto punto incorpora la magnitud y la euclidiana es la distancia en línea recta. El insight que ahorra confusión: para vectores normalizados las tres rankean los resultados de forma idéntica, y como los modelos de embedding de texto típicamente producen vectores normalizados ajustados para coseno, la pregunta “¿qué métrica?” suele venir ya respondida.

Exacto vs. aproximado: el trade-off del ANN

Exacto (kNN)Aproximado (ANN)
Compara contraTodos los vectoresUn subconjunto astuto
Recall100%~95–99%, ajustable
VelocidadLineal — O(n)Casi logarítmica
Suficiente hasta~1M de vectoresDecenas de millones+
CostoCPU por consultaRAM para el grafo

La búsqueda exacta compara la consulta contra cada vector almacenado — perfecta, y perfectamente adecuada hasta alrededor de un millón de vectores. Más allá, HNSW — el índice aproximado dominante — construye un grafo de proximidad por capas (capas superiores dispersas para saltos largos, una capa inferior densa con todo) y desciende con avidez de lo grueso a lo fino, saltándose la mayoría de las comparaciones. Es un primo semántico del B-tree: donde un B-tree indexa “igual a” y “menor que”, un índice ANN indexa “similar a”. La salvedad honesta que los competidores suavizan: el ANN puede perder al vecino más cercano verdadero, sus parámetros cambian recall por velocidad y memoria, y el grafo vive en RAM — por eso dimensionar una base vectorial es, en la práctica, una conversación sobre memoria.

Índice vectorial vs. base de datos vectorial

Una distinción que la sopa de términos esconde: una librería de índice en memoria (como FAISS) calcula vecinos más cercanos, pero no persiste, no actualiza y no filtra — reindexa en cada reinicio, y no existe cláusula WHERE. Una base de datos vectorial envuelve el índice con durabilidad, actualizaciones incrementales y filtrado por metadatos. Esa brecha es exactamente la razón por la que “usa solo una librería” falla en producción y por la que tu base de datos actual con un índice vectorial suele ser la respuesta correcta — ya tiene la durabilidad, las transacciones y los permisos que a la librería le faltan.

¿Realmente necesitas una base de datos vectorial dedicada?

La respuesta neutral que las páginas de proveedores no pueden dar. Una base de datos de uso general con soporte vectorial — Postgres vía pgvector, los índices vectoriales HNSW de MongoDB sobre campos de array — atiende con comodidad hasta cerca de un millón de vectores por nodo, justo al lado de los datos de tu aplicación y sus permisos. Un motor dedicado paga su costo operativo y su impuesto de sincronización de doble sistema (mantener el almacén vectorial consistente con la base fuente-de-verdad) a escala genuinamente grande: decenas de millones de vectores, tasas de consulta muy altas o recall alto exigido bajo filtrado pesado. Por debajo de más o menos un millón de vectores, un almacén especializado suele costar más en código pegamento de lo que devuelve en rendimiento — la aritmética que la mayoría de las páginas “necesitas una base vectorial” estructuralmente no puede hacer, porque ellas son la base vectorial.

El filtrado por metadatos es la frontera de seguridad

La similitud vectorial rankea por significado y no sabe nada sobre quién puede leer qué — así que la consulta de producción nunca es “los diez vecinos más cercanos”, sino “los diez vecinos más cercanos que este usuario puede ver”. Equivoca el orden y no es un bug de relevancia, es una fuga de datos: el pre-filtrado reduce los candidatos al conjunto permitido antes de la búsqueda ANN (correcto); el post-filtrado recorta después, filtrando la existencia de los elementos prohibidos y devolviendo silenciosamente menos que k. Cuando el filtro son las ACLs, el pre-filtrado es la diferencia entre una búsqueda semántica y una brecha — la misma lección que RAG aprende por las malas. Almacenar los embeddings en la base que ya aplica tus permisos es la forma en que el filtro sale gratis.

Embeddings en código real

// JavaScript — Cloud Code (cloud/main.js)
// Embeddings live as a field next to the data they describe
Parse.Cloud.beforeSave('Doc', async (req) => {
  if (req.object.dirty('text')) {
    // generate server-side; embedding API key stays on the server
    req.object.set('embedding', await embed(req.object.get('text')));
    req.object.set('embedModel', 'text-embed-v3'); // version it — models differ
  }
});

// Similarity search, ACL-filtered: "nearest neighbors this user MAY see"
Parse.Cloud.define('semanticSearch', async (req) => {
  const qVec = await embed(req.params.q);
  return vectorSearch('Doc', qVec, { limit: 10, aclUser: req.user });
  // The pre-filter is the security boundary, not a relevance tweak.
});

Fíjate en el campo embedModel: los vectores de modelos distintos — o de versiones distintas del mismo modelo — no son comparables, así que cambiar de modelo de embedding significa re-embeber el corpus entero. Guarda el nombre del modelo junto a los vectores, o un upgrade silencioso convierte tu índice en ruido.

Casos de uso comunes

  • Búsqueda semántica — “quiero mi dinero de vuelta” encuentra “política de reembolsos” aunque no compartan ninguna palabra.
  • Recuperación para RAG — traer los chunks que fundamentan la respuesta de un LLM.
  • Recomendaciones — elementos cercanos al historial del usuario en el espacio de embeddings.
  • Deduplicación y clustering — contenido casi idéntico como vectores casi idénticos.
  • Detección de anomalías y fraude — los outliers son vectores lejos de todos los ejemplos normales.

¿Dónde deberían vivir tus vectores? Matriz de decisión

SituaciónElige
Corpus a escala de aplicación (< ~1M de vectores)El índice vectorial de tu base — junto a los datos
Los vectores deben respetar permisos de usuarioDonde ya están las ACLs
Decenas de millones de vectores, QPS altoUn motor vectorial dedicado
Importan los términos exactos y el significadoBúsqueda híbrida con fusión de rankings
Un prototipo rápidopgvector o un almacén embebido — no sobreconstruyas
Un solo proceso, sin persistenciaUna librería de índice (FAISS) — aceptando sus límites

Limitaciones y trade-offs

  • Los embeddings codifican la visión del mundo del modelo. Sesgos, puntos ciegos y el corte de entrenamiento vienen incluidos; la geometría es solo tan buena como el modelo que la dibujó.
  • ANN es aproximado a propósito. Ajusta el recall a lo que está en juego; “generalmente encuentra el mejor resultado” es el trato que firmaste a cambio de la velocidad.
  • La versión del modelo es un esquema. Re-embeber un corpus grande al cambiar de modelo es una migración de verdad, no un flag de configuración.
  • La memoria es el techo. Los grafos HNSW viven en RAM; los límites de vectores por nodo son límites de memoria con otra etiqueta.
  • Similitud no es relevancia. Estar cerca en el espacio vectorial es una señal fuerte, no una garantía — la búsqueda híbrida y el re-ranking existen porque la búsqueda vectorial pura falla con los términos exactos.

Vectores en Back4app

Back4app es una plataforma open-source de Backend as a Service (BaaS) que combina base de datos gestionada, APIs REST y GraphQL generadas automáticamente, autenticación, almacenamiento de archivos y funciones serverless con Cloud Code. Como corre sobre MongoDB, la historia de almacenamiento es la que este artículo recomienda: un embedding es un campo de array en el objeto que describe — el documento y su vector en el mismo registro — con la indexación vectorial HNSW como el mecanismo real por debajo. Las consecuencias se encadenan limpiamente: las ACLs que ya gobiernan cada consulta se convierten en el pre-filtro de la búsqueda por similitud gratis, así que la recuperación no puede cruzar una frontera de permisos; los embeddings se generan en un trigger beforeSave de Cloud Code llamando a un modelo de embedding con la clave guardada en el servidor; y no hay un servicio vectorial aparte que sincronizar, asegurar y pagar. Para los corpus a escala de aplicación que la mayoría de los productos realmente tiene, “base de datos vectorial” no es un sistema que adoptas — es un campo que agregas.

Preguntas frecuentes

¿Qué es un embedding en términos simples?

Una lista de números que un modelo le asigna a un dato — texto, una imagen, audio — de forma que las cosas con significado parecido reciban números parecidos. Dos documentos sobre el mismo tema terminan como puntos vecinos en un espacio de alta dimensión, y eso es lo que le permite a una computadora medir qué tan "similares" son.

¿Qué es una base de datos vectorial?

Un sistema que almacena embeddings y responde rápido "qué elementos almacenados son más similares a este", usando índices de vecinos más cercanos aproximados (ANN) en vez de búsquedas por coincidencia exacta. La parte de "base de datos" — durabilidad, actualizaciones, filtrado por metadatos — es lo que la separa de una simple librería de índice en memoria.

¿Cómo funciona la búsqueda por similitud?

La consulta se embebe con el mismo modelo y se compara con los vectores almacenados mediante una métrica de distancia: coseno (solo el ángulo), producto punto (ángulo y magnitud) o euclidiana (distancia en línea recta). Para vectores normalizados las tres rankean los resultados de forma idéntica, y los modelos de embedding de texto suelen estar ajustados para coseno.

¿Cuál es la diferencia entre búsqueda exacta y aproximada?

La exacta (kNN) compara la consulta contra cada vector — recall perfecto, pero tiempo lineal, viable hasta alrededor de un millón de vectores. La aproximada (ANN, usualmente HNSW) se salta la mayoría de las comparaciones y logra velocidad casi logarítmica, cambiando unos puntos porcentuales de recall por consultas órdenes de magnitud más rápidas. Perder el vecino más cercano verdadero de vez en cuando suele ser aceptable.

¿Qué es HNSW?

Hierarchical Navigable Small World — el índice ANN dominante en producción. Construye un grafo de proximidad de múltiples capas: las capas superiores, dispersas, dan atajos de largo alcance; la capa inferior, densa, contiene todos los vectores; y la búsqueda desciende con avidez de lo grueso a lo fino. Sus parámetros cambian recall por velocidad y memoria, y el grafo vive en RAM.

¿Necesito una base de datos vectorial dedicada?

A escala de aplicación, generalmente no. Una base de datos de uso general con soporte de índice vectorial — Postgres con pgvector, la búsqueda vectorial de MongoDB — maneja con comodidad hasta cerca de un millón de vectores por nodo, junto a tus datos y permisos. Los motores dedicados se pagan con decenas de millones de vectores, tasas de consulta muy altas o recall alto bajo filtrado pesado.

¿Qué es el filtrado por metadatos y por qué importa?

Restringir la búsqueda por similitud mediante campos — tenant, categoría, fecha, permisos. El pre-filtrado limita los candidatos antes de la búsqueda ANN; el post-filtrado recorta después y puede devolver silenciosamente menos resultados de los que pediste. Las consultas de producción casi siempre van filtradas, y cuando el filtro son los permisos, es una frontera de seguridad.

¿Para qué sirve una base de datos vectorial además de RAG?

Búsqueda semántica, recomendaciones, detección de casi-duplicados y detección de anomalías o fraude (los outliers son vectores lejos de todo lo demás), además de similitud de imagen y audio y clustering. RAG es el uso famoso; la búsqueda por similitud es la capacidad general que hay debajo.

Términos relacionados

Compara con

Lecturas recomendadas

¿Listo para construir tu backend?

Empieza tu proyecto en Back4app en minutos — base de datos, autenticación, APIs y Cloud Code incluidos. Sin tarjeta de crédito.

Escrito y revisado por Back4app Engineering, Back4app Engineering · Publicado el 2026-09-03