Qdrant
La base de datos vectorial de alto rendimiento para aplicaciones IA.
Qdrant es un motor de búsqueda por similitud vectorial escrito en Rust. Almacena embeddings (vectores densos de OpenAI, Cohere, Voyage, BGE, etc.) y sirve queries de vecinos más cercanos vía índices HNSW — lo bastante rápido para RAG en producción, búsqueda semántica, recomendaciones y detección de anomalías. Pier despliega la imagen Docker oficial con almacenamiento persistente y la UI de dashboard.
Desplegar con Pier
- 1 Abre el panel de Pier y haz clic en Add service.
- 2 Elige Qdrant en la lista de plantillas.
- 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
- 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.
¿Qué es Qdrant?
Qdrant es un motor open-source de búsqueda por similitud vectorial escrito en Rust. Existe para responder una pregunta muy, muy rápido: “dado este vector de consulta, encuentra los k vectores almacenados más cercanos”. Donde la mayoría de bases de datos generales luchan con cargas vectoriales de alta dimensión, Qdrant está construido específicamente para índices HNSW, filtrado por payload y tiempos de respuesta sub-50ms sobre millones de vectores.
El stack moderno de IA — RAG, búsqueda semántica, recomendaciones, detección de anomalías — todos necesitan este primitivo. Los embeddings vienen de modelos (OpenAI, Cohere, Voyage, BGE/MiniLM locales); los embeddings viven en Qdrant; las queries combinan similitud vectorial con filtros de payload (“encuentra similares a este, pero solo en inglés, publicados la última semana, por el usuario X”).
Cómo lo despliega Pier
Pier usa la imagen Docker oficial qdrant/qdrant. Puertos por defecto:
6333 (REST + UI Dashboard) y 6334 (gRPC). El volumen de datos se monta
en /qdrant/storage. Pier autogenera una API key (seteada vía
QDRANT__SERVICE__API_KEY) y la expone en la página de detalle del
servicio.
La UI de Dashboard integrada es accesible en el puerto 6333 (path
/dashboard). Adjunta un dominio en el tab Domains de Pier para HTTPS
vía Traefik.
Cuándo NO usar Qdrant
Si ya tienes datos en Postgres y tu dataset es de menos de ~1M vectores, pgvector es más simple — una base de datos menos que operar. Para simplicidad pura de servicio gestionado a cualquier escala, Pinecone trade coste por zero-ops. Qdrant gana cuando quieres control autohospedado, escala de multimillones de vectores, filtrado de payload rico y búsqueda híbrida sparse+dense.
Características clave
Índice HNSW en disco
Grafo HNSW (Hierarchical Navigable Small World) mapeado en memoria — búsqueda en milisegundos sobre millones de vectores de alta dimensión sin tener todo en RAM.
Filtrado por payload
Adjunta metadata JSON (tags, fechas, IDs de usuario) a cada vector. Filtra en search time — "encuentra docs similares que me pertenecen, modificados los últimos 30 días" en una sola query.
REST + gRPC + clientes Python/JS/Rust/Go
Clientes de primera clase para Python, JS, Rust, Go, .NET, Java. REST y gRPC soportados; gRPC es más rápido para workloads de alto QPS.
Búsqueda híbrida (sparse + dense)
Combina vectores sparse estilo BM25 con embeddings densos. La híbrida supera frecuentemente a cualquiera por separado para RAG sobre documentos enterprise.
Cuantización
Cuantización escalar, producto y binaria reduce el tamaño del índice 4-32× con mínima pérdida de recall. Corre índices de miles de millones de vectores en VMs commodity.
Sharding y replicación
Escalado horizontal vía shards; réplicas para redundancia. Pier ships single-node; los clusters a escala de producción necesitan orquestación manual.
Casos de uso
Retrieval RAG / chatbot
La "R" en retrieval-augmented generation. Embed tus docs con OpenAI / BGE / Voyage; guarda en Qdrant; consulta en chat time por los top-k chunks relevantes.
Búsqueda semántica
Encuentra documentos por significado, no solo por keywords. "¿Quién tiene experiencia en state management de React?" devuelve matches incluso si escribieron "expertise en Redux/Zustand".
Sistemas de recomendación
Embeddings usuario → ítem → ítems similares. Amigable al cold-start cuando tienes embeddings de ítems pero ningún dato de comportamiento.
Detección de duplicados / casi-duplicados
La deduplicación basada en hashing pierde paráfrasis. La basada en embeddings las atrapa. Vital para moderación de contenido, plagio, dedupe de tickets de soporte.
Búsqueda multimodal / de imágenes
Los embeddings CLIP te dejan buscar imágenes por texto y viceversa. Misma colección Qdrant, queries multimodales.
Ejemplos de código
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams
client = QdrantClient(url="http://qdrant:6333")
client.create_collection(
collection_name="docs",
vectors_config=VectorParams(size=1536, distance=Distance.COSINE),
) from qdrant_client.models import PointStruct
client.upsert(
collection_name="docs",
points=[
PointStruct(
id=42,
vector=[0.1, 0.2, ...], # 1536-dim
payload={"title": "Hello", "url": "/posts/hello", "lang": "es"},
)
],
) from qdrant_client.models import Filter, FieldCondition, MatchValue
hits = client.search(
collection_name="docs",
query_vector=[0.1, 0.2, ...],
query_filter=Filter(
must=[FieldCondition(key="lang", match=MatchValue(value="es"))]
),
limit=5,
) from qdrant_client.models import Prefetch
results = client.query_points(
collection_name="docs",
prefetch=[
Prefetch(query=dense_vector, using="dense", limit=20),
Prefetch(query=sparse_vector, using="sparse", limit=20),
],
query={ "fusion": "rrf" }, # reciprocal rank fusion
limit=5,
) Comparativa
| vs Pinecone (gestionado) | Pinecone es hosted, pulido, caro. Qdrant es OSS, autohospedado, rendimiento comparable. Elige Qdrant cuando quieras control sobre datos, costes o necesites despliegue on-prem. |
| vs Weaviate | Weaviate tiene módulos integrados para generación de embeddings (llama OpenAI/Cohere por ti). Qdrant es más fino — generas embeddings client-side. Ambos excelentes; Qdrant tiende a ser más rápido, Weaviate tiene mejores features híbridas. |
| vs pgvector (extensión PostgreSQL) | pgvector es genial cuando ya tienes datos en Postgres y no quieres una segunda base de datos. Qdrant supera a pgvector a escala (10M+ vectores) y tiene filtrado de payload más rico. |
| vs Milvus | Milvus es un proyecto OSS liderado por chinos con feature set similar. Más pesado de operar (más componentes). Qdrant es más simple — un binario, un contenedor. |
Preguntas frecuentes
¿Puerto y protocolo por defecto?
¿De dónde vienen los embeddings?
¿Persistencia?
¿Requisitos de memoria y disco?
¿Autenticación?
¿Backups?
¿Qué versión despliega Pier?
Servicios relacionados
Desplegar en tu VPS
Qdrant es un motor de búsqueda por similitud vectorial escrito en Rust. Almacena embeddings (vectores densos de OpenAI, Cohere, Voyage, BGE, etc.) y sirve queries de vecinos más cercanos vía índices HNSW — lo bastante rápido para RAG en producción, búsqueda semántica, recomendaciones y detección de anomalías. Pier despliega la imagen Docker oficial con almacenamiento persistente y la UI de dashboard.
Desplegar este servicio →