VectorChord 使用教程
1. 项目目录结构及介绍
VectorChord 是一个为 PostgreSQL 设计的扩展,用于可扩展的、高性能的、磁盘高效的向量相似性搜索。项目的目录结构如下:
crates
: 存放 Rust 编写的相关库。docker
: 包含 Docker 相关的配置和脚本。licenses
: 存放项目的许可证文件。scripts
: 包含项目构建和部署的脚本。sql
: 包含 SQL 文件,用于 PostgreSQL 的扩展。src
: VectorChord 的主要源代码目录。tests
: 包含项目的单元测试和集成测试。tools
: 存放项目开发过程中使用的工具脚本。.cargo
: Cargo 的配置文件。.github/workflows
: GitHub Actions 工作流文件,用于自动化测试和部署。Cargo.lock
: Cargo 锁文件,记录项目依赖的具体版本。Cargo.toml
: Cargo 配置文件,定义项目的元数据和依赖。LICENSE
: 项目许可证文件。README.md
: 项目说明文件。build.rs
: Rust 构建脚本。rust-toolchain.toml
: Rust 工具链配置文件。rustfmt.toml
: Rust 格式化配置文件。taplo.toml
: Taplo 配置文件,用于格式化 TOML 文件。vchord.control
: PostgreSQL 扩展的控制文件。
2. 项目的启动文件介绍
项目的启动主要是通过 Docker 来进行的。在 docker
目录下,你可以找到 Dockerfile
,它是用于构建 Docker 镜像的指令文件。
使用以下命令来启动 VectorChord 的 Docker 容器:
docker run \
--name vectorchord-demo \
-e POSTGRES_PASSWORD=mysecretpassword \
-p 5432:5432 \
-d tensorchord/vchord-postgres:pg17-v0.2.2
启动容器后,你可以使用 psql
命令行工具连接到 PostgreSQL 数据库:
psql -h localhost -p 5432 -U postgres
默认的用户名是 postgres
,密码是启动容器时设置的 mysecretpassword
。
3. 项目的配置文件介绍
VectorChord 的配置主要通过 SQL 命令来完成。在 sql
目录中,你会找到创建扩展和索引的 SQL 文件。
以下是一个简单的配置例子:
创建一个带有向量列的表:
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);
创建一个 vchordrq
索引:
CREATE INDEX ON items USING vchordrq (embedding vector_l2_ops) WITH (options = 'residual_quantization=true [build(internal)] lists=[]');
进行向量搜索:
SET vchordrq.probes TO '';
SELECT * FROM items ORDER BY embedding <@ '>[3,1,2]' LIMIT 5;
这些 SQL 命令可以根据实际情况进行调整,以满足不同的搜索需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考