VectorChord

在 Postgres 里实现大规模向量搜索,更快更省磁盘。

VectorChord 是一个基于 Postgres 的向量检索扩展,是 pgvecto.rs 的继任者。它旨在解决 Postgres 中向量搜索扩展在数据量大时性能不佳、磁盘占用过高的问题。核心能力包括:支持 HNSW 和 IVFFlat 索引,提供高性能的向量相似度搜索;采用磁盘友好的设计,通过优化存储布局和压缩技术,显著降低索引和数据的磁盘占用;支持流式复制和并行查询,易于水平扩展。项目使用 Rust 开发,性能优异,与 Postgres 生态无缝集成,可通过标准 SQL 进行向量操作。适合需要将向量检索能力整合进现有 Postgres 数据库、避免引入额外专用向量数据库的场景。

开源 free 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1800
维护状态 维护中
是否开源
定价模式 free

项目数据

分类基础设施
开发团队supervc-stack
所属国家
定价模式free
价格说明开源项目,基于Rust实现,可自行部署,完全免费。
访问状态
是否开源
开源协议NOASSERTION
主要语言Rust
技术栈/模型artificial-intelligence,llmops,postgresql,vector-database,vector-search
GitHub 星标★ 1800
30天Star增速
HF 下载量
上线时间2024-09-03 00:00:00
最近更新2026-09-22 00:00:00
维护状态维护中
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:入门 约 10 分钟 部署方式:Docker 6 步

环境要求

  • 已安装 Docker(可执行 docker run)
  • 本机 5432 端口可用,或自行改用其他端口
  • 需要 psql 客户端用于连接数据库
  • 了解基本的 SQL 与向量检索概念

安装与启动步骤

  1. 1启动容器

    用官方镜像后台启动带 VectorChord 扩展的 Postgres,通过 -e 设置数据库密码;容器名与标签照抄即可。

    docker run --name vectorchord-demo -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d ghcr.io/tensorchord/vchord-postgres:pg18-v1.1.1
  2. 2连接数据库

    用 psql 连接本地 5432 端口,默认用户名 postgres,密码为上面设置的 mysecretpassword,回车后输入密码。

    psql -h localhost -p 5432 -U postgres
  3. 3启用扩展

    在数据库中创建 vchord 扩展;CASCADE 会一并处理它依赖的 pgvector 向量类型,无需另行安装。

    CREATE EXTENSION IF NOT EXISTS vchord CASCADE;
  4. 4建表并写入数据

    创建带 3 维 vector 列的表,并插入 1000 行随机向量作为测试数据。

    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);
  5. 5创建向量索引

    用 vchordrq 索引类型为 embedding 列建 L2 距离索引,这是 VectorChord 提供的索引方式。

    CREATE INDEX ON items USING vchordrq (embedding vector_l2_ops);
  6. 6执行相似度检索

    用 <-> 运算符按 L2 距离排序取最近邻,验证索引与查询链路可用。

    SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;

关键配置

配置项必填说明示例
POSTGRES_PASSWORD设置 postgres 用户密码,连接数据库时需要mysecretpassword
-p 5432:5432端口映射,将宿主机端口映射到容器内 Postgres 端口5432:5432
镜像标签镜像版本需与扩展版本兼容,参考官方 support matrixghcr.io/tensorchord/vchord-postgres:pg18-v1.1.1

如何确认成功

psql 能成功连上数据库,CREATE EXTENSION 不报错,最后 SELECT 查询返回 5 条按距离排序的记录。

常见问题

Q:不想用 Docker,怎么安装?

A:README 未给出非 Docker 的安装命令,官方指引先阅读安装指南:https://docs.vectorchord.ai/vectorchord/getting-started/installation.html。

Q:数据库的默认账号密码是什么?

A:默认用户名为 postgres,密码即启动容器时通过 POSTGRES_PASSWORD 指定的值,示例中为 mysecretpassword。

Q:还需要单独安装 pgvector 吗?

A:不需要。VectorChord 依赖 pgvector 的向量表示,执行 CREATE EXTENSION ... CASCADE 时会自动处理该依赖。

Q:想同时用 BM25 或分词能力怎么办?

A:改用 all-in-one 镜像 tensorchord/vchord-suite:pg17-latest,它包含 VectorChord、VectorChord-bm25 与 pg_tokenizer.rs。

Q:索引类型为什么是 vchordrq?

A:README 的快速开始中即为该列创建 vchordrq 索引,更多索引与量化类型用法见官方 usage 文档。

注意事项

  • 镜像 tag 必须与扩展版本兼容,升级前请对照官方支持矩阵。
  • README 未说明数据持久化配置,容器删除后数据会丢失,生产环境请自行处理存储卷。
  • README 仅演示 Docker 方式;非 Docker 安装请以官方 installation 文档为准。
  • 启动后建议先在 psql 中执行 CREATE EXTENSION 再建表,否则无法使用 vector 类型。

核心亮点

  • 磁盘占用大幅降低,相比同类扩展可节省数倍空间
  • 查询性能出色,在百万级向量数据集上表现稳定
  • 与 Postgres 原生集成,支持 SQL 和事务,无需额外服务

不足之处

  • 项目较新,文档和社区生态仍在完善中
  • 高级功能(如过滤索引)可能不如专用向量数据库丰富

适用场景

  • 在现有 Postgres 应用中增加向量搜索能力,避免引入新数据库
  • 处理大规模向量数据,且存储成本敏感的场景
  • 需要事务性保证和 SQL 灵活性的 RAG 应用

替代项目

pgvector、pgvecto.rs、Milvus

项目介绍

VectorChord 是基础设施领域的开源项目,由 supervc-stack 开发,2024 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(1,800)位列前 30%,在基础设施分类中处于中上游。

近 42 天,它的 GitHub 星标从 1,769 增加到 1,800,净增 31。

项目仍在小幅维护中,最近一次代码更新于 2026-09-22。基于Rust实现,可自行部署,完全免费。

它主要面向的使用场景是:在现有Postgres应用中增加向量搜索能力,避免引入新数据库。同类可对比的替代方案包括 pgvector、pgvecto.rs、Milvus。

上一篇:rtp-llm

下一篇:inferock-bench

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

Multi-account OpenAI-compatible gateway for coding models. Pooled keys, session life···

★ 213 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8684 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 439 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181484 2026-08-09