VECTOR DATABASE, FROM THE INSIDE OUT

让相似,
彼此发现。

从一个向量,到一组有意义的关联。
用 C++ 探索向量检索、持久化存储与分布式系统的底层实现。

</>代码公开 · AI 参与开发 · 持续探索
VECTOR SPACE01 / INTERACTIVE
二维向量近邻示意选择查询点,查看二维空间中距离最近的示例向量。xy
查询点
已找到 3 个近邻查询近邻

交互示意 · 浏览器内二维距离计算,非数据库性能演示

从底层构建C++HNSWRocksDBProtocol BuffersRaft

01 / THE BUILDING BLOCKS

从存储到检索,
看清每一层。

围绕向量数据组织能力,
沿着真实代码理解系统如何工作。

01

找到相似向量

通过 HNSW 或 Flat 索引进行向量检索,支持按查询向量或已有 ID 查找近邻。

VIndex
02

组织向量与数据

以表管理向量及其标量数据,通过 RocksDB 和索引持久化机制保存数据与检索状态。

Table
03

深入分布式系统

从单节点架构走向集群设计,研究项目中的 Raft 日志复制、快照与节点协作实现。

Raft

02 / UNDER THE HOOD

小处可读,
全局可见。

从 Vectordb 接口进入,逐层追踪表、索引和存储。架构图与实现一起阅读,让抽象回到具体。

查看完整架构图

03 / MAKE IT YOURS

从一次构建开始。

克隆仓库,安装依赖,运行测试。
这里是理解 VectorDB 的第一步。

Ubuntu 24.04.2 LTS

以下命令沿用项目 README 的构建流程。依赖安装需要 sudo,并会执行仓库的依赖脚本。

阅读构建说明
quickstart.sh
# 01 — Clone
git clone https://github.com/vectordb-io/vectordb.git
cd vectordb

# 02 — Install dependencies
sudo apt install autoconf automake libtool -y
sudo apt-get install libgflags-dev libsnappy-dev \
  zlib1g-dev libbz2-dev liblz4-dev libzstd-dev -y
git submodule update --init
cd third_party && sh onekey.sh && cd -

# 03 — Build & test
make proto && make -j4
make run
● 在本地探索,在代码中理解。

KEEP EXPLORING

代码之外,继续探索。