PRODSovereign European BaaS platformOpen Dashboard →

Native AI · 9 min read

pgvector vs Pinecone, Weaviate, Qdrant in 2026

Affane Daylami · Fondateur · April 9, 2026

Back to blog

pgvector is not a vector database: it is a Postgres extension that adds a vector column type and similarity operators to an existing relational database. Pinecone, Weaviate and Qdrant are three bases dedicated to vector research, with three different deployment models. So the real question is not "which one is better", but "should your vectors live alongside your relational data, or in a separate system".

This English text was generated automatically from the French original and has not been reviewed yet.

This article compares the four options on what remains stable over time: the deployment model, the place of data and the search capabilities. We do not republish pricing or latency benchmarks for Pinecone, Weaviate, or Qdrant. These figures change too quickly to be reliable without dated verification, and the research conducted for this article did not cover them. For the overview of the Aurabase native AI pillar (NL2SQL, RAG, agents), see our Native AIpage.

The essentials
  • pgvector is a Postgres extension, not a separate base: your vectors remain joined to your relational data, with RLS applicable directly to vector columns.
  • Pinecone is a proprietary, closed cloud service with no public self-hosting option. Zero infrastructure operations, in exchange for total lock-in on its data format.
  • Weaviate and Qdrant are two dedicated open source vector databases, self-hosted or available in a managed cloud. Weaviate highlights hybrid BM25 + native vector research; Qdrant highlights payload filtering and memory quantification.
  • Aurabase embeds pgvector 0.8.6 in each project's Postgres image and uses it for its native RAG functionality (ingest, embeddings, HNSW index), verified in code as of August 23, 2026.
  • There is no universal winner: the right choice depends on the topology of your data, not an absolute ranking of performance.
#
Overview

Four architectures, not a four-way ranking

pgvector, Pinecone, Weaviate and Qdrant all serve the same function, finding the closest vectors to a query, with incompatible architectures between them. The table below compares what remains true over time: deployment model, data location, search capabilities. Prices and precise version numbers for Pinecone, Weaviate and Qdrant are deliberately absent: check them on the official sites before making any purchasing decision.

CriterionpgvectorPineconeWeaviateQdrant
TypePostgres extension, not a separate baseProprietary vector database, closed serviceDedicated vector base, open sourceDedicated vector base, open source
Where your data livesIn Postgres, with the rest of the relational schemaOutside your main base, in the Pinecone IndexOff your main base, in a Weaviate collectionOutside of your main base, in a Qdrant collection
DeploymentEmbedded in an existing Postgres clusterManaged cloud only, no public self-hosting optionSelf-hosted or managed cloud (Weaviate Cloud)Self-hosted or managed cloud (Qdrant Cloud)
Hybrid keyword + vector searchYes, via standard SQL: tsvector, joins and relational filters combined with vectorFiltering by metadata; no documented native BM25 fusionYes, fusion vector + native BM25, flagship feature of the productRich filtering by payload; no native BM25 fusion by default
Multi-tenant insulationStandard Postgres RLS, at row level, applicable directly to vector columnsIsolation by index or namespace on the service sideInsulation by collection on the service sideInsulation by collection on the service side
Fuzzy search indexIVFFlat and HNSW, your choiceProprietary index, implementation details not published in detailHNSWHNSW, with optional scalar or binary quantization
Topology comparison: pgvector embedded in Postgres versus a dedicated vector base synchronized from the applicationPostgres + pgvectorRelational tablesVector columns + HNSW indexSame transaction, same RLS policiesDedicated vector baseYour main application/basePinecone / Weaviate / QdrantSynchronization to maintain (ETL, job, webhook)

Conceptual diagram of the two possible topologies. It does not encode any encrypted data, only the deployment architecture.

Element checked in the Aurabase code: the pgvector version embedded in the Postgres image of each project is 0.8.6. It is delivered by the standard upstream CNPG image, not added specifically by Aurabase. This fact is noted in the Dockerfile of the repository, on August 23, 2026. The official pgvector repository also confirms a maximum dimension of 16,000 per vector. This is well above the three dimension classes (768, 1536, 3072) used by Aurabase's native RAG pipeline. This pipeline is an application addition specific to Aurabase, built on top of pgvector.

#
pgvector

Vector search without leaving Postgres

pgvector adds a vector(n) column type and distance operators (<=> cosine, <-> euclidean, <#> dot product) to a normal Postgres base. Your vectors share the same table, the same transaction and the same constraints as the rest of your schema: nothing to synchronize to an external system.

For fuzzy searching, pgvector offers two index types to choose from. IVFFlat divides the vector space into lists by clustering and searches only in the lists closest to the query. Its construction is lighter, but you must choose a number of lists adapted to the volume of data. HNSW constructs a multi-level neighbor graph, without a prior training step, at the cost of a more memory-intensive construction. For details of the adjustment parameters (m, ef_construction), see our guide dedicated to the HNSW index.

generic pgvector SQL example (excluding internal Aurabase code)sql
-- Extension and vector column (dimension 1536, e.g. text-embedding-3-small)
CREATE EXTENSION IF NOT EXISTS vector;
ALTER TABLE documents ADD COLUMN embedding vector(1536);

-- HNSW index for fuzzy searching
CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);

-- Vector search joined to a relational table, filtered by RLS
SELECT d.id, d.content
FROM documents d
JOIN projects p ON p.id = d.project_id
WHERE p.owner_id = auth.uid()
ORDER BY d.embedding <=> $1
LIMIT 5;

The last line is the structuring point: the WHERE p.owner_id = auth.uid() clause applies to vector search exactly as it does to any other query. No dedicated vector database reproduces this behavior natively, since your RLS policies live in Postgres, not in a third-party service. To build a complete RAG pipeline based on this, see our RAG pipeline tutorial with pgvector.

#
Pinecone

The closed managed service, with no self-hosting option

Pinecone is a vector base offered exclusively as a proprietary cloud service. There is no public self-hosted version: your vectors live in Pinecone's infrastructure, not yours. This is an architectural choice assumed by the publisher, not a temporary limitation.

The compromise is direct. Zero vector infrastructure operations to manage: no cluster to size, no indexes to run yourself. In exchange, two hidden costs often appear after the fact. First, a synchronization pipeline to build and maintain between your main database and the Pinecone index, with its own consistency logic in the event of partial failure. Next, a proprietary format and API: migrating out of Pinecone means re-exporting the entire vectors and rebuilding the integration elsewhere.

Be careful with unverified figures this session

This article does not cite any pricing, quota limits, or specific implementation details of Pinecone. The research conducted for this page did not include fresh verification of this information, which changes frequently. Consult the official Pinecone documentation before making any production decisions.

Weaviate is a dedicated, open source and self-hosting vector database, also available as a managed cloud offering (Weaviate Cloud) for those who prefer not to operate it themselves. Its feature most highlighted by the publisher is native hybrid search. It merges, in a single classification of results, a vector similarity score and a BM25 type keyword correspondence score.

Concretely, this avoids writing the fusion logic between semantic search and keyword search yourself, a step that other approaches leave to the application. Weaviate also offers a system of modules to directly connect external embedding providers at the time of ingestion. The compromise remains the same as for any dedicated database: an additional system to operate or pay for, to keep synchronized with your main data source.

#
Qdrant

The dedicated database written in Rust, filtering and memory footprint

Qdrant is a dedicated vector database, open source and written in Rust, also available in self-hosting or in a managed cloud (Qdrant Cloud). Like the core of Aurabase, Qdrant is written in Rust: a shared language choice, not an argument of superiority in itself.

Two points come up most often in feedback on Qdrant. First, a rich payload filtering system: it allows you to combine structured filters (category, date, status) and vector search in the same query. Next, quantization options (scalar or binary), intended to reduce the memory footprint of a large-scale index. Same compromise as Weaviate: a system separate from your main database, with its own synchronization logic to maintain.

#
Decision

When to choose pgvector, Pinecone, Weaviate or Qdrant

Choose pgvector if…

  • Your vectors must remain attached to your relational data (users, permissions, products)
  • Your RLS policies should also apply to vector search results
  • You don't want to add a system to sync on top of Postgres

Choose Pinecone if…

  • You want zero vector infrastructure operations
  • Locking in a closed proprietary format is not a problem for your team
  • You agree to build a sync pipeline to an external service

Choose Weaviate if…

  • You want a hybrid keyword + native vector search, without rebuilding it yourself
  • Your use case is a standalone search engine, not a functionality added to an existing app
  • You are ready to operate or pay for a dedicated service in addition to your main base

Choose Qdrant if…

  • Rich filtering by payload is a determining criterion at your scale
  • Memory quantization counts for a very large vector index
  • You want an open source engine where you maintain control of the code
#
Our choice

What the code shows: native pgvector, without a separate extension

Aurabase does not add pgvector: the extension is already present in the standard Postgres image provided by CloudNativePG, the foundation used for tenant clusters. What Aurabase builds on top is application functionality: an ingestion pipeline with network error management, an embeddings module, and vector search by HNSW index. This capability is natively exposed in the aura-aiservice, verified in the repository code on August 23, 2026.

The Aurabase RAG pipeline supports three classes of embedding dimensions (768, 1536, 3072), corresponding to the most common output sizes of current embedding models. Each vector remains a column of a normal Postgres table, in the project schema, under the same RLS policies as the rest of this project's data. This is the same logic as the SQL example in section 02, applied to an entire pipeline rather than an isolated query.

Attention

No latency benchmarks comparing pgvector to Pinecone, Weaviate or Qdrant on a real Aurabase load are published in this repository as of today. See our Benchmarks page for the methodology used on this pillar, and our RAG pgvector guide for complete technical documentation.

#
Frequently asked questions

What we get asked most often

Can pgvector replace a dedicated vector base like Pinecone in production?+
It depends on the volume and topology of the data, not an absolute rule. For vector search integrated into an existing application (RAG on documents, semantic search on a catalog), pgvector avoids synchronizing a second system. On a very large scale, for purely vector use without the need for relational joins, a dedicated database can be of real interest. See the decision grid in section 06.
What is the difference between IVFFlat and HNSW indexes in pgvector?+
IVFFlat divides the vector space into lists by clustering and searches only in the closest lists: lighter construction, but a number of lists to be calibrated according to volume. HNSW constructs a multi-level neighbor graph, without a prior training step, at the cost of a more memory-intensive construction. For details of the adjustment parameters, see our guide dedicated to the HNSW index.
Are Weaviate and Qdrant open source, unlike Pinecone?+
Yes for both. Weaviate and Qdrant distribute a self-hosted open source version, supplemented by a managed cloud offering (Weaviate Cloud, Qdrant Cloud). Pinecone, conversely, does not offer any public self-hosting options: it is a service accessible only through its proprietary cloud.
Is a separate vector base needed if the application already uses Postgres?+
Not automatically. The real criterion is not whether Postgres can do vectoring (it can, via pgvector). This is whether your vector search results should remain filtered by your RLS policies and attached to your relational data. See our guide on multi-tenant insulation by RLS for details of this mechanism at Aurabase.
#
In summary

There is no universal winner between these four architectures

pgvector, Pinecone, Weaviate and Qdrant do not cover the same need. pgvector removes synchronization by keeping the vectors in Postgres, at the cost of a less specialized engine than a dedicated product. Pinecone withdraws all infrastructure operations, in return for total proprietary lock-in. Weaviate adds native hybrid search out of the box. Qdrant emphasizes rich filtering and large-scale memory footprint. The deciding criterion remains the same in all four cases: where your data should live, and who should be able to filter it.

To build a complete RAG pipeline on this basis, our RAG pipeline tutorial with pgvector details ingestion, embeddings and vector search step by step. For the overview of Aurabase's native AI pillar, see the Native AIpage.

READY TO DEPLOY?

Your backend in five minutes.

No credit card required · 500 MB free · 50,000 MAU