Qdrant is a high-performance vector search engine written in Rust. It's designed for production AI workloads — RAG, semantic search, recommendation engines, and multimodal search.
Free, open source, with a 1GB free cloud tier. Rust-based for maximum performance.
Why Use Qdrant?
- Written in Rust — fastest vector search engine available
- Rich filtering — combine vector search with complex filters
- Multimodal — store and search text, image, and video embeddings together
- Named vectors — multiple vector types per record
- Quantization — scalar/binary quantization for lower memory usage
- Free cloud tier — 1GB storage, no credit card
Quick Setup
1. Install
# Docker
docker run -p 6333:6333 -p 6334:6334 \
-v $(pwd)/qdrant_storage:/qdrant/storage \
qdrant/qdrant
# Or use Qdrant Cloud (free tier)
# Sign up at cloud.qdrant.io
2. Create Collection
curl -s -X PUT http://localhost:6333/collections/articles \
-H "Content-Type: application/json" \
-d '{
"vectors": {
"size": 768,
"distance": "Cosine"
}
}' | jq
3. Insert Points
curl -s -X PUT http://localhost:6333/collections/articles/points \
-H "Content-Type: application/json" \
-d '{
"points": [
{
"id": 1,
"vector": [0.1, 0.2, ...],
"payload": {"title": "Web Scraping Guide", "category": "tutorial", "views": 1500}
},
{
"id": 2,
"vector": [0.3, 0.4, ...],
"payload": {"title": "API Testing", "category": "testing", "views": 800}
}
]
}' | jq
4. Search
# Simple vector search
curl -s -X POST http://localhost:6333/collections/articles/points/search \
-H "Content-Type: application/json" \
-d '{
"vector": [0.1, 0.2, ...],
"limit": 5,
"with_payload": true
}' | jq '.result[] | {id: .id, score: .score, title: .payload.title}'
# Filtered search
curl -s -X POST http://localhost:6333/collections/articles/points/search \
-H "Content-Type: application/json" \
-d '{
"vector": [0.1, 0.2, ...],
"limit": 5,
"filter": {
"must": [{"key": "category", "match": {"value": "tutorial"}}],
"should": [{"key": "views", "range": {"gte": 1000}}]
},
"with_payload": true
}' | jq
5. Collection Info
# List collections
curl -s http://localhost:6333/collections | jq '.result.collections[].name'
# Collection details
curl -s http://localhost:6333/collections/articles | jq '{points: .result.points_count, vectors: .result.vectors_count, status: .result.status}'
Python Example
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct
client = QdrantClient(url="http://localhost:6333")
# Create collection
client.create_collection(
collection_name="articles",
vectors_config=VectorParams(size=768, distance=Distance.COSINE)
)
# Insert
client.upsert(
collection_name="articles",
points=[
PointStruct(id=1, vector=[0.1]*768,
payload={"title": "Scraping Guide", "category": "tutorial"}),
PointStruct(id=2, vector=[0.2]*768,
payload={"title": "API Testing", "category": "testing"})
]
)
# Search
results = client.search(
collection_name="articles",
query_vector=[0.15]*768,
limit=5
)
for r in results:
print(f"ID: {r.id} | Score: {r.score:.4f} | {r.payload['title']}")
Key Endpoints
| Endpoint | Method | Description |
|---|---|---|
| /collections | GET | List collections |
| /collections/{name} | PUT | Create collection |
| /collections/{name}/points | PUT | Upsert points |
| /collections/{name}/points/search | POST | Vector search |
| /collections/{name}/points/scroll | POST | Paginated retrieval |
| /collections/{name}/points/recommend | POST | Recommendation |
| /cluster | GET | Cluster info |
Need custom data extraction or scraping solution? I build production-grade scrapers for any website. Email: Spinov001@gmail.com | My Apify Actors
Top comments (0)