Vector database engineering covering Pinecone, Weaviate, Qdrant, pgvector, Milvus, and Chroma selection and configuration, indexing strategies (HNSW, IVF, PQ), similarity search optimization, hybrid search, filtering, multi-tenancy, scaling patterns, and production operations.
Use when the user asks about vector db engineer, vector db engineer best practices, or needs guidance on vector db engineer implementation.
Do NOT use when the user needs a different specialized skill or is asking about an unrelated technology domain.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Vector database engineering covering Pinecone, Weaviate, Qdrant, pgvector, Milvus, and Chroma selection and configuration, indexing strategies (HNSW, IVF, PQ), similarity search optimization, hybrid search, filtering, multi-tenancy, scaling patterns, and production operations.
Use when the user asks about vector db engineer, vector db engineer best practices, or needs guidance on vector db engineer implementation.
Do NOT use when the user needs a different specialized skill or is asking about an unrelated technology domain.
Vector databases are purpose-built systems for storing, indexing, and querying high-dimensional embedding vectors at scale. They underpin semantic search, RAG systems, recommendation engines, and similarity-based applications. This skill covers database selection, index configuration, query optimization, hybrid search, scaling, and production operations across major platforms.
Database Comparison
Feature
Pinecone
Weaviate
Qdrant
pgvector
Milvus
Chroma
Type
Managed
Both
Both
Extension
Both
OSS
Language
Proprietary
Go
Rust
C (PG)
Go/C++
Python
Max Vectors
100B+
Billions
Billions
~10M
Billions
Millions
Hybrid Search
Yes
Yes (BM25)
Yes (sparse)
With tsvector
Yes
No
Multi-tenancy
Namespaces
Native
Collections
Schemas/RLS
Partitions
Collections
Quantization
Auto
PQ, BQ
Scalar, PQ
Half-prec
PQ, SQ
No
GPU Accel
Server-side
No
No
No
Yes
No
Pricing (approximate)
Database
Free Tier
10M vectors (1536d)
Pinecone
100K vectors
~$70/mo
Weaviate Cloud
50K vectors
~$150/mo
Qdrant Cloud
1M vectors
~$100/mo
pgvector
Self-hosted
DB hosting cost
Zilliz (Milvus)
200K vectors
~$200/mo
Chroma
Unlimited local
Server cost
Selection Decision Tree
Already using PostgreSQL?
YES -> pgvector (zero new infra)
Over 5-10M vectors? -> Add dedicated vector DB
Prototyping?
YES -> Chroma (install the package via pip, zero config)
Need fully managed, minimal ops?
YES -> Pinecone serverless or Qdrant Cloud
Need hybrid search (vector + keyword)?
YES -> Weaviate (BM25) or Qdrant (sparse vectors)
Need GPU-accelerated search?
YES -> Milvus / Zilliz
Performance critical, low-level control?
YES -> Qdrant (Rust) or Milvus
Cost sensitive at scale?
YES -> Self-hosted Qdrant or Milvus
Default -> Pinecone serverless (simplest operations)
CREATE EXTENSION IF NOTEXISTS vector;
CREATE TABLE documents (
id SERIAL PRIMARY KEY,
content TEXT NOT NULL,
metadata JSONB DEFAULT'{}',
embedding vector(1536)
);
CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops) WITH (m =16, ef_construction =128);
-- Similarity search with filterSET hnsw.ef_search =100;
SELECT id, content, 1- (embedding <=> $1::vector) AS similarity
FROM documents
WHERE metadata->>'source'='manual.pdf'ORDERBY embedding <=> $1::vector LIMIT 10;
-- Hybrid: vector + full-textSELECT id, content,
0.7* (1- (embedding <=> $1::vector)) +0.3* ts_rank(to_tsvector('english', content), plainto_tsquery($2)) score
documents
to_tsvector(, content) @@ plainto_tsquery($)
score LIMIT ;
Hybrid Search
Reciprocal Rank Fusion
defreciprocal_rank_fusion(result_lists: list[list[dict]], k: int = 60, weights: list[float] = None) -> list[dict]:
"""Combine ranked lists (vector + keyword) using RRF."""
weights = weights or [1.0] * len(result_lists)
scores = {}
for weight, results inzip(weights, result_lists):
for rank, doc inenumerate(results, 1):
if doc["id"] notin scores:
scores[doc["id"]] = {"doc": doc, "score": 0.0}
scores[doc["id"]]["score"] += weight / (k + rank)
return [s["doc"] | {"rrf_score": s["score"]}
for s insorted(scores.values(), key=lambda x: x["score"], reverse=True)]
Filtering Strategy
Pre-filtering (filter before vector search):
Selective filter (<10% matches) -> Pre-filter
Efficient but may miss semantically relevant results
Post-filtering (filter after vector search):
Broad filter (>50% matches) -> Post-filter or skip filter
Full semantic quality but may return <top_k results
In between -> Pre-filter with over-get (search top_k*3, then filter)
Implement hybrid search if keyword matching adds value
Set up payload/metadata indexes for filtered search
Design multi-tenancy strategy
Enable quantization if memory constrained
Implement backup and recovery procedures
Set up monitoring for latency, memory, recall, errors
Load test at expected QPS with realistic patterns
Plan scaling strategy (vertical first, horizontal when needed)
Document index parameters, schemas, and runbooks
When to Use
Use this skill when:
Designing or implementing vector db engineer solutions
Reviewing or improving existing vector db engineer approaches
Making architectural or implementation decisions about vector db engineer
Learning vector db engineer patterns and best practices
Troubleshooting vector db engineer-related issues
Do NOT use this skill when:
The question is about a fundamentally different technology domain
A more specific sibling skill covers the exact topic needed
The user needs a complete hands-on tutorial rather than expert guidance
Output Format
# Vector Db Engineer Analysis## Context Assessment
[Situation summary and constraints]
## Recommended Approach
[Primary recommendation with rationale]
## Implementation Steps1. [Step with specific details]
2. [Step with specific details]
3. [Step with specific details]
## Trade-offs and Considerations- [Key trade-off 1]
- [Key trade-off 2]
## Next Steps- [Immediate action item]
- [Follow-up action item]
Example
Input: "Help me implement vector db engineer for a medium-scale production application"
Output: A structured analysis covering current state assessment, recommended vector db engineer approach with specific patterns, implementation roadmap with milestones, and risk mitigation strategies tailored to the application scale and constraints.
Edge Cases
Legacy system integration: When vector db engineer must coexist with legacy approaches, provide a gradual migration path rather than a complete rewrite
Scale mismatch: When the solution complexity exceeds the project scale, recommend a simpler approach and note when to revisit
Team skill gaps: When the team lacks experience with the recommended approach, include learning resources and simpler alternatives
Conflicting requirements: When constraints conflict (e.g., performance vs. maintainability), explicitly state the trade-off and recommend based on stated priorities