VectorChord 依赖 pgvector,需用 CREATE EXTENSION IF NOT EXISTS vchord CASCADE 一并安装;Docker 镜像默认端口为 5432、默认用户 postgres,密码由 POSTGRES_PASSWORD 指定;all-in-one 镜像需按支持矩阵选择与扩展版本兼容的 tag。
VectorChord
supervc-stack活跃维护Postgres 里的可扩展向量检索扩展,pgvecto.rs 的继任者,主打快速、省磁盘,适合在现有数据库里直接做大规模向量搜索。
Scalable, fast, and disk-friendly vector search in Postgres, the successor of pgvecto.rs.
docker run --name vectorchord-demo -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d ghcr.io/tensorchord/vchord-postgres:pg18-v1.1.1
psql -h localhost -p 5432 -U postgresREADME 未说明 GPU 或显存要求;README 提到可在 128GB 内存的机器上构建十亿向量索引,并给出 AWS i4i.xlarge、i7ie.6xlarge 等实例作为容量参考。
PostgreSQL 向量检索扩展,用 RaBitQ 压缩在单机上承载亿级向量并平滑扩到十亿级
Postgres 里的可扩展向量检索扩展,pgvecto.rs 的继任者,主打快速、省磁盘,适合在现有数据库里直接做大规模向量搜索。
核心能力
- 用 RaBitQ 压缩配合自动重排存储向量
- 提供原生 4-bit 与 8-bit 向量类型降低存储成本
- 用层次 K-means 与磁盘优化加速索引构建
- 通过降维与采样控制内存增长以支撑大规模索引
- 兼容 pgvector 数据类型与语法,可直接迁移
容易踩的坑
- 1.1.1最新正式版2026-02-28 · 2026-02-28 04:04 UTC
VectorChord 1.1.1 Release Notes
Features
Added 4 new functions:
dequantize_to_vector(rabitq8)dequantize_to_halfvec(rabitq8)dequantize_to_vector(rabitq4)dequantize_to_halfvec(rabitq4)
These functions convert quantized vectors back into floating-point vectors.
See Quantization Types for docs.
What's Changed
Replaced the quantization algorithm used by:
quantize_to_rabitq8(vector)quantize_to_rabitq8(halfvec)quantize_to_rabitq4(vector)quantize_to_rabitq4(halfvec)
with a faster implementation for improved performance.
Full Changelog: https://github.com/tensorchord/VectorChord/compare/1.1.0...1.1.1
- 1.1.02026-02-11 · 2026-02-11 07:08 UTC
查看更新说明
VectorChord 1.1.0 Release Notes
Features
VectorChord now provides
rabitq8andrabitq4types. They are RaBitQ-quantized vectors, internally stored asuint8[]oruint4[]instead offloat32[]orfloat16[], costing less storage. Like other vector types, you can create indexes for them.CREATE TABLE items (id bigserial PRIMARY KEY, embedding rabitq8(3)); CREATE INDEX ON items USING vchordrq (embedding rabitq8_l2_ops); INSERT INTO items (embedding) VALUES (quantize_to_rabitq8('[0,0,0]'::vector)); INSERT INTO items (embedding) VALUES (quantize_to_rabitq8('[1,1,1]'::vector)); INSERT INTO items (embedding) VALUES (quantize_to_rabitq8('[2,2,2]'::vector)); --- ... SELECT id FROM items ORDER BY embedding <-> quantize_to_rabitq8('[0.9,0.9,1.1]'::vector) LIMIT 100;See Quantization Types for docs.
Search parameters could be configured via index storage parameters since
1.1.0. Search parameters can be bound to the index, so they don't need to be specified in a session or transaction.CREATE INDEX items_embedding_idx ON items USING vchordrq (embedding vector_l2_ops) WITH (options = $$ build.internal.lists = [1000] $$, probes = '10');See Fallback Parameters for docs.
What's Changed
PostgreSQL 13 is now end-of-life and will no longer receive security and bug fixes. VectorChord drops PostgreSQL 13 support as of
1.1.0.Full Changelog: https://github.com/tensorchord/VectorChord/compare/1.0.0...1.1.0
- 1.0.02025-11-12 · 2025-11-12 04:19 UTC
查看更新说明
VectorChord 1.0 Release Notes
VectorChord 1.0 is here. This release delivers much faster PostgreSQL index builds with IVF + RaBitQ, quicker updates, broader architecture support, and a stack of new features since our first release. It’s a major milestone—production-ready and thoroughly tested.
Highlights
We have dramatically optimized index build speed, now capable of building a 100M-vector dataset in 20 minutes on a 16-vCPU machine while sharply cutting memory usage, making index construction in production far more convenient.
What's changed since 0.5
Performance & scalability
- Lock-contention optimizations in index building
- Faster table sampling in index building
- Hierarchical K-means
- Dimension reduction in K-means
- Parallel compacting in index building
- Prints estimated memory usage in index building
Fixes
- Don't use expensive Rayon fold/reduce
- Freespace recycle in vchordg
Full Changelog: https://github.com/tensorchord/VectorChord/compare/0.5.3...1.0.0
- 0.5.32025-09-26 · 2025-09-26 11:32 UTC
查看更新说明
VectorChord 0.5.3 Release Notes
- Fix
build.pinif parallel build is not enabled. https://github.com/tensorchord/VectorChord/pull/346 - Run tests on x86_64 MacOS. https://github.com/tensorchord/VectorChord/pull/348
- Build prebuilt packages for PostgreSQL 18. https://github.com/tensorchord/VectorChord/pull/349
- Fix
- 0.5.22025-09-15 · 2025-09-15 07:17 UTC
查看更新说明
VectorChord 0.5.2 Release Notes
- Add built-in query simpling, for recall evaluation with online queries, see also Query sampling. (https://github.com/tensorchord/VectorChord/pull/321, https://github.com/tensorchord/VectorChord/pull/334, https://github.com/tensorchord/VectorChord/pull/337, https://github.com/tensorchord/VectorChord/pull/338)
- Fix MVCC violation if either
build.rerank_in_tableorvchordrq.prefilteris enabled. (https://github.com/tensorchord/VectorChord/pull/336) - Fix incorrect order of
vchordrq.probes. (https://github.com/tensorchord/VectorChord/pull/342)
The
vchord-postgresimage includes pgvector0.8.1now. You could update the extension schema by running the following SQL:ALTER EXTENSION pgvector UPDATE; ALTER EXTENSION vchord UPDATE;
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
VectorChord
Ready for the Billion-Scale Era. Host 100M vectors on a single i4i.xlarge ($247/mo) and scale seamlessly to 1B+.
Official Site · Blog · Docs · Feedback · Contact Us
VectorChord (vchord) is a PostgreSQL extension engineered for scalable, high-performance, and cost-effective vector search.
To efficiently store vectors while preserving search quality, VectorChord applies RaBitQ1 compression together with autonomous reranking. With VectorChord, you can store 400,000 vectors for just $1, enabling significant savings: 6x more vectors compared to Pinecone's optimized storage and 26x more than pgvector/pgvecto.rs for the same price.
Features
VectorChord introduces remarkable enhancements over pgvecto.rs and pgvector:
💰 Affordable Vector Search: Host 100M × 768-dimensional vectors → AWS i4i.xlarge ($247/month)2, host 1B × 96-dimensional vectors → i7ie.6xlarge ($2246/month)3, helping you keep infrastructure costs down while maintaining competitive search quality.
⚡ Accelerated Index Build: Index 100 million vectors in just 20 minutes. Powered by hierarchical K-means and highly optimized disk operations, VectorChord eliminates the bottleneck of vector indexing on a single machine with limited hardware resources.
📈 Smoothly Scale Up: Scale with confidence as your data grows. Through dimensionality reduction and sampling4, VectorChord effectively controls memory growth, enabling 1B-vector indexes to be built on machines with 128GB of memory in practice.
🔌 Seamless Integration: Fully compatible with pgvector data types and syntax while providing optimal defaults out of the box - no complex parameter tuning needed. Just drop in VectorChord for enhanced experience.
💾 Efficient Storage with Low-Bit Data type: Drastically reduce storage costs with our native 4-bit (RaBitQ4) and 8-bit (RaBitQ8) vector types. Achieve massive space savings without compromising search quality—RaBitQ8 maintains high precision with <1% recall loss.
Quick Start
For new users, we recommend using the Docker image to get started quickly. If you do not prefer Docker, please read installation guide for other installation methods.
docker run \
--name vectorchord-demo \
-e POSTGRES_PASSWORD=mysecretpassword \
-p 5432:5432 \
-d ghcr.io/tensorchord/vchord-postgres:pg18-v1.1.1
[!NOTE] In addition to the base image with the VectorChord extension, we provide an all-in-one image,
tensorchord/vchord-suite:pg17-latest. This comprehensive image includes all official TensorChord extensions, includingVectorChord,VectorChord-bm25andpg_tokenizer.rs. Developers should select an image tag that is compatible with their extension's version, as indicated in the support matrix.
Then you can connect to the database using the psql command line tool. The default username is postgres, and the default password is mysecretpassword.
psql -h localhost -p 5432 -U postgres
Now you can play with VectorChord!
VectorChord depends on pgvector, including the vector representation. Since you can use them directly, your application can be easily migrated without pain!
CREATE EXTENSION IF NOT EXISTS vchord CASCADE;
Similar to pgvector, you can create a table with vector column and insert some rows to it.
CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
INSERT INTO items (embedding) SELECT ARRAY[random(), random(), random()]::real[] FROM generate_series(1, 1000);
With VectorChord, you can create vchordrq indexes.
CREATE INDEX ON items USING vchordrq (embedding vector_l2_ops);
And then perform a vector search using SELECT ... ORDER BY ... LIMIT ....
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
For more usage, please read:
- Indexing
- Multi-Vector Retrieval
- Quantization Types
- Graph Index
- Quantization Types
- Similarity Filter
- PostgreSQL Tuning
- Monitoring
- Fallback Parameters
- Measure Recall
- Prewarm
- Prefilter
- Prefetch
- Rerank in Table
- Partitioning Tuning
- External Build
License
This software is licensed under a dual license model:
-
GNU Affero General Public License v3 (AGPLv3): You may use, modify, and distribute this software under the terms of the AGPLv3.
-
Elastic License v2 (ELv2): You may also use, modify, and distribute this software under the Elastic License v2, which has specific restrictions.
You may choose either license based on your needs. We welcome any commercial collaboration or support, so please email us [email protected] with any questions or requests regarding the licenses.