VectorChord

supervc-stack活跃维护

Postgres 里的可扩展向量检索扩展,pgvecto.rs 的继任者,主打快速、省磁盘,适合在现有数据库里直接做大规模向量搜索。

Scalable, fast, and disk-friendly vector search in Postgres, the successor of pgvecto.rs.

1.1.1发布于 2026-02-28 04:04 UTC1,837star73fork同步于 2026-11-07 07:29 UTC

怎么上手

由 README 提炼,执行前请确认
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 postgres
硬件要求按 README 说明

README 未说明 GPU 或显存要求;README 提到可在 128GB 内存的机器上构建十亿向量索引,并给出 AWS i4i.xlarge、i7ie.6xlarge 等实例作为容量参考。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

PostgreSQL 向量检索扩展,用 RaBitQ 压缩在单机上承载亿级向量并平滑扩到十亿级

Postgres 里的可扩展向量检索扩展,pgvecto.rs 的继任者,主打快速、省磁盘,适合在现有数据库里直接做大规模向量搜索。

核心能力

  • 用 RaBitQ 压缩配合自动重排存储向量
  • 提供原生 4-bit 与 8-bit 向量类型降低存储成本
  • 用层次 K-means 与磁盘优化加速索引构建
  • 通过降维与采样控制内存增长以支撑大规模索引
  • 兼容 pgvector 数据类型与语法,可直接迁移

容易踩的坑

VectorChord 依赖 pgvector,需用 CREATE EXTENSION IF NOT EXISTS vchord CASCADE 一并安装;Docker 镜像默认端口为 5432、默认用户 postgres,密码由 POSTGRES_PASSWORD 指定;all-in-one 镜像需按支持矩阵选择与扩展版本兼容的 tag。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本1.1.1
  1. 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

  2. 1.1.02026-02-11 · 2026-02-11 07:08 UTC
    查看更新说明

    VectorChord 1.1.0 Release Notes

    Features

    VectorChord now provides rabitq8 and rabitq4 types. They are RaBitQ-quantized vectors, internally stored as uint8[] or uint4[] instead of float32[] or float16[], 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

  3. 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

  4. 0.5.32025-09-26 · 2025-09-26 11:32 UTC
    查看更新说明

    VectorChord 0.5.3 Release Notes

  5. 0.5.22025-09-15 · 2025-09-15 07:17 UTC
    查看更新说明

    VectorChord 0.5.2 Release Notes

    The vchord-postgres image includes pgvector 0.8.1 now. You could update the extension schema by running the following SQL:

    ALTER EXTENSION pgvector UPDATE;
    ALTER EXTENSION vchord UPDATE;
    

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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, including VectorChord, VectorChord-bm25 and pg_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:

    License

    This software is licensed under a dual license model:

    1. GNU Affero General Public License v3 (AGPLv3): You may use, modify, and distribute this software under the terms of the AGPLv3.

    2. 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.

    Footnotes

    1. Gao, Jianyang, and Cheng Long. "RaBitQ: Quantizing High-Dimensional Vectors with a Theoretical Error Bound for Approximate Nearest Neighbor Search." Proceedings of the ACM on Management of Data 2.3 (2024): 1-27. ↩

    2. Please check out our blog post for more details. ↩

    3. Please check out our blog post for more details. ↩

    4. Please check out our blog post for more technique details and document for usages. ↩