promptgarten 🌱
🌍 FR
Término●●○4 min · +40 XP

Bases de datos vectoriales: buscar por significado, no por palabras

Una base de datos vectorial almacena embeddings y encuentra los más parecidos a toda velocidad: la base de RAG y la búsqueda semántica.

Qué hace una base de datos vectorial

Un modelo de embeddings convierte texto (o imágenes) en un vector: una lista larga de números que captura el significado. Una base de datos vectorial almacena muchos de estos vectores y responde a una pregunta a toda velocidad: ¿qué vectores almacenados se parecen más a un vector nuevo?

Para qué se necesita

Esa es precisamente la base de RAG (retrieval-augmented generation) y de la búsqueda semántica: en lugar de buscar palabras exactas, la base de datos encuentra fragmentos de texto con un significado parecido, aunque no coincida ninguna palabra. "¿Cómo cancelo?" encuentra entonces también un apartado que se llama "finalizar el contrato".

Bases de datos vectoriales conocidas

  • pgvector: extensión para la base de datos Postgres normal, no hace falta un sistema aparte.
  • Chroma: ligera, de código abierto, popular para proyectos pequeños y para empezar rápido.
  • Qdrant: base de datos independiente, pensada para grandes volúmenes y para producción.
  • Otros nombres conocidos: Pinecone, Weaviate, Milvus.

Cuándo NO necesitas una

Con unos pocos cientos o unos pocos miles de fragmentos de texto, suele bastar con un simple array en memoria y un cálculo sencillo de similitud; una base de datos vectorial propia solo merece la pena cuando el volumen de datos, la velocidad o los accesos simultáneos ya no lo permiten.

EJEMPLO

Ejemplo con pgvector: CREATE EXTENSION vector; CREATE TABLE docs (id bigserial PRIMARY KEY, content text, embedding vector(1024)); SELECT content FROM docs ORDER BY embedding <-> '[0.01, 0.02, ...]' LIMIT 5;

🛠️ EJERCICIO — PRUÉBALO TÚ

Comprueba, para un pequeño proyecto propio, si necesitas una base de datos vectorial o si basta con un simple array.

  1. Calcula aproximadamente cuántos fragmentos de texto (chunks) tiene actualmente tu base de conocimiento.
  2. Si son menos de unos pocos miles: prueba con un simple array en memoria con similitud coseno.
  3. Si ya usas Postgres: prueba en su lugar pgvector con una pequeña tabla de prueba.
  4. Compara el esfuerzo y el tiempo de respuesta de ambos enfoques.

AUTOEVALUACIÓN

  • ¿Calculaste cuántos chunks tiene tu base de conocimiento?
  • ¿Probaste realmente los dos enfoques, no solo los pensaste?
  • ¿Sabes ahora qué enfoque supone menos esfuerzo para tu proyecto?

QUIZ RÁPIDO

Según la regla general, ¿cuándo NO necesitas una base de datos vectorial propia?

FUENTES

TEMAS RELACIONADOS

Embeddings: el texto convertido en números ●●○RAG (generación aumentada por recuperación) ●●○Construye tú mismo un RAG sencillo ●●●Context Window (ventana de contexto) ●○○