0Pricing
AI Agents · Lesson

Pinecone, Weaviate, Qdrant: Comparison

Three production vector DBs compared on hosting model, query speed, filtering, and developer experience.

Pinecone, Weaviate, Qdrant: Comparison is a free AI Agents lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the AI Agents learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Why Pick a Vector DB?

FAISS and Chroma are great for prototypes but production demands more: persistent storage, replication, metadata indexing, multi-tenancy, auth, monitoring.

Three top managed vector DBs: Pinecone, Weaviate, Qdrant.

Pinecone

Fully managed, serverless, easiest to start:

  • + Zero ops, SaaS-only
  • + Strong p99 latency guarantees
  • + Hybrid search (vector + sparse)
  • - Cloud-only, no self-host
  • - Pricing per pod or per dimension

Weaviate

Self-host or managed, ML-native features:

  • + Built-in vectorisation modules (call OpenAI from inside Weaviate)
  • + GraphQL query language
  • + Multi-tenancy primitives
  • + OSS Apache 2.0
  • - More moving parts than Pinecone

Qdrant

OSS-first, written in Rust, very fast:

  • + Best-in-class self-hosted performance
  • + Strong filtering (rich payload language)
  • + Quantization options for memory savings
  • + gRPC and REST APIs
  • - Smaller ecosystem than Pinecone

Pinecone Code Example

from pinecone import Pinecone
pc = Pinecone(api_key='...')
index = pc.Index('docs')

index.upsert([
    ('id-1', vec1, {'source': 'a.pdf'}),
    ('id-2', vec2, {'source': 'b.pdf'})
])

results = index.query(
    vector=query_vec,
    top_k=5,
    filter={'source': 'a.pdf'}
)

Weaviate Code Example

import weaviate
client = weaviate.Client('http://localhost:8080')

client.batch.add_data_object(
    {'text': '...', 'source': 'a.pdf'},
    class_name='Doc',
    vector=vec1
)

results = (
    client.query.get('Doc', ['text', 'source'])
    .with_near_vector({'vector': query_vec})
    .with_limit(5)
    .do()
)

Qdrant Code Example

from qdrant_client import QdrantClient
from qdrant_client.models import PointStruct

client = QdrantClient('http://localhost:6333')

client.upsert(
    collection_name='docs',
    points=[PointStruct(id=1, vector=vec1, payload={'source': 'a.pdf'})]
)

results = client.search(
    collection_name='docs',
    query_vector=query_vec,
    limit=5
)

When to Choose Pinecone

  • You want zero ops
  • Multi-region replication
  • Mature integrations (LangChain, LlamaIndex)

When to Choose Weaviate

  • You need hybrid (BM25 + vector) out of the box
  • Strict data-residency / on-prem
  • You like GraphQL

When to Choose Qdrant

  • You self-host and need top performance
  • Heavy metadata filtering
  • You want the simplest deployment

Don't Forget pgvector

If you already run Postgres, the pgvector extension lets you store vectors alongside relational data:

CREATE EXTENSION vector;
CREATE TABLE docs (id SERIAL PRIMARY KEY, text TEXT, embedding vector(1536));
CREATE INDEX ON docs USING ivfflat (embedding vector_cosine_ops);

SELECT text FROM docs ORDER BY embedding <=> $1 LIMIT 5;

Other Options

  • Milvus — popular at scale, distributed
  • Chroma — local-first, simple
  • LanceDB — local, columnar, fast
  • Elasticsearch — vectors + classical search in one
  • Redis Vector — Redis + vector indexing

Migration Pain

Switching vector DBs after launch is painful — re-embedding millions of docs is expensive and slow. Choose carefully or build an abstraction layer (LangChain VectorStore interface).

Which Is Self-Hosted-First?

Which vector DB is written in Rust and oriented toward self-hosting?

Recap

Pinecone for ease, Weaviate for hybrid + GraphQL, Qdrant for performance, pgvector for "we already have Postgres". Pick early, evaluate honestly.

Frequently asked questions

Is the “Pinecone, Weaviate, Qdrant: Comparison” lesson free?

Yes — the full text of “Pinecone, Weaviate, Qdrant: Comparison” is free to read here on the web, and the AI Agents course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the AI Agents course, upgrade to CoddyKit PRO.

What will I learn in “Pinecone, Weaviate, Qdrant: Comparison”?

Three production vector DBs compared on hosting model, query speed, filtering, and developer experience. You practise AI Agents with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start AI Agents?

No prior experience is required. AI Agents on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Pinecone, Weaviate, Qdrant: Comparison” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this AI Agents lesson?

Yes. Every AI Agents lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Pinecone, Weaviate, Qdrant: Comparison
  2. Metadata Filtering for Hybrid Search
  3. Updating and Deleting Vectors
  4. Choosing Distance Metrics (cosine, L2, dot)
← Back to AI Agents