back
loading skill details...
Configure Qdrant vector database for GrepAI. Use this skill for high-performance vector search.
GrepAI Storage with Qdrant
This skill covers using Qdrant as the storage backend for GrepAI, offering high-performance vector search.
When to Use This Skill
Need fastest possible search performance
Very large codebases (50K+ files)
Already using Qdrant infrastructure
Want advanced vector search features
What is Qdrant?
Qdrant is a purpose-built vector database offering:
⚡ Extremely fast vector similarity search
📏 Excellent scalability
🔧 Advanced filtering capabilities
🐳 Easy Docker deployment
Prerequisites
Qdrant server running
Network access to Qdrant
Advantages
Benefit
Description
⚡ Performance
Fastest vector search
📏 Scalability
Handles millions of vectors
🔍 Advanced
Filtering, payloads, sharding
🐳 Easy deploy
Docker-ready
☁️ Cloud option
Qdrant Cloud available
Setting Up Qdrant
Option 1: Docker (Recommended)
# Run Qdrant with persistent storage
docker run -d \
--name grepai-qdrant \
-p 6333:6333 \
-p 6334:6334 \
-v qdrant_storage:/qdrant/storage \
qdrant/qdrant
Ports:
6333: REST API
6334: gRPC API (used by GrepAI)
Option 2: Docker Compose
# docker-compose.yml
version: '3.8'
services:
qdrant:
image: qdrant/qdrant
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant_storage:/qdrant/storage
environment:
- QDRANT__SERVICE__GRPC_PORT=6334
volumes:
qdrant_storage:
docker-compose up -d
Option 3: Qdrant Cloud
Sign up at cloud.qdrant.io
Create a cluster
Get your endpoint and API key
Configuration
Basic Configuration (Local)
# .grepai/config.yaml
store:
backend: qdrant
qdrant:
endpoint: localhost
port: 6334
With TLS (Production)
store:
backend: qdrant
qdrant:
endpoint: qdrant.company.com
port: 6334
use_tls: true
With API Key (Qdrant Cloud)
store:
backend: qdrant
qdrant:
endpoint: your-cluster.aws.cloud.qdrant.io
port: 6334
use_tls: true
api_key: ${QDRANT_API_KEY}
Set the environment variable:
export QDRANT_API_KEY="your-api-key"
Configuration Options
Option
Default
Description
endpoint
localhost
Qdrant server hostname
port
6334
gRPC port
use_tls
false
Enable TLS encryption
api_key
none
Authentication key
Verifying Setup
Check Qdrant is Running
# REST API health check
curl http://localhost:6333/health
# Expected: {"status":"ok"}
Check Collections (after indexing)
# List collections
curl http://localhost:6333/collections
# Get collection info
curl http://localhost:6333/collections/grepai
From GrepAI
grepai status
# Should show Qdrant backend info
Qdrant Dashboard
Access the web dashboard at http://localhost:6333/dashboard:
View collections
Browse vectors
Execute queries
Monitor performance
Performance Characteristics
Search Latency
Codebase Size
Vectors
Search Time
Small (1K files)
5,000
<10ms
Medium (10K files)
50,000
<20ms
Large (100K files)
500,000
<50ms
Memory Usage
Qdrant loads vectors into memory for fast search:
Vectors
Dimensions
Memory
10,000
768
~60 MB
100,000
768
~600 MB
1,000,000
768
~6 GB
Advanced Configuration
Qdrant Server Configuration
Create config/production.yaml:
storage:
storage_path: /qdrant/storage
service:
grpc_port: 6334
http_port: 6333
max_request_size_mb: 32
optimizers:
memmap_threshold_kb: 200000
indexing_threshold_kb: 50000
Mount in Docker:
docker run -d \
-v ./config:/qdrant/config \
-v qdrant_storage:/qdrant/storage \
qdrant/qdrant
Collection Settings
GrepAI creates a collection named grepai with:
Vector size: matches your embedding dimensions
Distance: Cosine similarity
On-disk storage for large datasets
Clustering (Advanced)
For very large deployments, Qdrant supports distributed mode:
# qdrant config
cluster:
enabled: true
p2p:
port: 6335
Backup and Restore
Snapshot Creation
# Create snapshot via REST API
curl -X POST 'http://localhost:6333/collections/grepai/snapshots'
Restore Snapshot
# Restore from snapshot
curl -X PUT 'http://localhost:6333/collections/grepai/snapshots/recover' \
-H 'Content-Type: application/json' \
-d '{"location": "/path/to/snapshot"}'
Migrating from GOB
Start Qdrant:
docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant
Update configuration:
store:
backend: qdrant
qdrant:
endpoint: localhost
port: 6334
Delete old index:
rm .grepai/index.gob
Re-index:
grepai watch
Migrating from PostgreSQL
Start Qdrant
Update configuration to use Qdrant
Re-index (embeddings must be regenerated)
Common Issues
❌ Problem: Connection refused
✅ Solution: Ensure Qdrant is running:
docker ps | grep qdrant
docker start grepai-qdrant
❌ Problem: gRPC connection failed
✅ Solution: Check port 6334 is exposed:
docker run -p 6334:6334 ...
❌ Problem: Authentication failed
✅ Solution: Check API key:
echo $QDRANT_API_KEY
❌ Problem: Out of memory
✅ Solutions:
Enable on-disk storage in Qdrant config
Increase Docker memory limit
Use Qdrant Cloud for managed scaling
❌ Problem: Slow initial indexing
✅ Solution: This is normal; Qdrant optimizes in background. Searches will be fast after indexing completes.
Qdrant vs PostgreSQL
Feature
Qdrant
PostgreSQL
Search speed
⚡⚡⚡
⚡⚡
Setup complexity
Easy (Docker)
Medium
SQL queries
❌
✅
Scalability
Excellent
Good
Memory efficiency
Excellent
Good
Team familiarity
Lower
Higher
Recommendation: Use Qdrant for large codebases or maximum performance. Use PostgreSQL if you need SQL integration or team is familiar with it.
Best Practices
Use persistent volume: Mount /qdrant/storage
Enable TLS in production: Set use_tls: true
Secure API key: Use environment variables
Monitor memory: Vector search is memory-intensive
Regular snapshots: Backup before major changes
Output Format
Qdrant storage status:
✅ Qdrant Storage Configured
Backend: Qdrant
Endpoint: localhost:6334
TLS: disabled
Collection: grepai
Contents:
- Files: 5,000
- Vectors: 25,000
- Dimensions: 768
Performance:
- Connection: OK
- Indexed: Yes
- Search latency: ~15msdon't have the plugin yet? install it then click "run inline in claude" again.