
1
下载vexdb-lite插件
登陆vexdb-lite github首页,进入 Releases 页面,如下图所示:

跳转后,根据机器架构(x86/arm)下载
vexdb-lite-duckdb-linux-[aarch64/x86_64].tar.gz文件
,即vexdb-lite的duckdb插件版本压缩包。

准备好命令行环境,并确定压缩包目录或将其迁移到当前目录下。
使用‘tar xfz path/to/vexdb-lite-duckdb-linux-[aarch64/x86_64].tar.gz’命令解压插件,注意填写正确的压缩包地址。

目录显示vexdb_lite.duckdb_extension表示插件解压成功,下一步开始安装duckdb及加载插件。
2
安装duckdb
使用pip install 命令安装duckdb,如果无python环境,可以在conda文档官网:
https://docs.conda.io/projects/conda/en/stable/user-guide/install/linux.html#
找到conda安装方式使用python。
或不需要python连接duckdb可以在其官网 https://duckdb.org/install/ 找到对应语言的驱动工具即安装方法。
我们这里只演示python驱动的安装方法:当前插件对应duckdb1.5.2版本,后续添加不同版本后可以从发布文件下载界面中选择对应的版本。注意duckdb的版本必须与插件版本一致。
安装命令语句与执行结果显示如下:
`pip install duckdb==1.5.2`

安装后可以使用:
python -c "import duckdbprint(duckdb.__version__)"
验证安装是否成功以及对应版本

3
加载vexdb-lite插件
使用INSTALL命令加载vexdb-lite插件,注意填写正确的插件路径,命令如下:
python -c "import duckdbcon = duckdb.connect(config={\"allow_unsigned_extensions\": \"true\"})con.execute(\"INSTALL 'path/to/vexdb_lite.duckdb_extension'\")"
左右滑动查看更多
没有报错则表示执行成功

接下来可以重新连接验证一下插件内容,执行如下命令:
python -c "import duckdbcon = duckdb.connect(config={\"allow_unsigned_extensions\": \"true\"})con.execute(\"LOAD vexdb_lite\")con.sql(\"SELECT*FROM duckdb_extensions() WHERE extension_name ='vexdb_lite'\").show()"
左右滑动查看更多
表示插件已经安装和加载成功了

后续使用可以通过python语句
con = duckdb.connect(config={\"allow_unsigned_extensions\": \"true\"})con.execute(\"LOAD vexdb_lite\")# 使用con在duckdb上执行SQL语句
左右滑动查看更多
连接并使用duckdb
4
使用vexdb-lite插件
INSTALL是一次性的,日常使用每次连接只需:
pythoncon = duckdb.connect(config={"allow_unsigned_extensions": "true"})con.execute("LOAD vexdb_lite")
左右滑动查看更多
向量列类型为FLOAT[N](N是维度)。
建表、写入、建图索引、查近邻
python# 建表并写入向量con.execute("CREATE TABLE items (id INTEGER, vec FLOAT[3])")con.execute("INSERT INTO items VALUES (1, [1.0,0.0,0.0]), (2, [0.0,1.0,0.0]), (3, [0.9,0.1,0.0])")
左右滑动查看更多
建图索引
con.execute("CREATE INDEX idx ON items USING GRAPH_INDEX (vec)")左右滑动查看更多
近邻查询
ORDER BY 距离函数 + LIMIT k,优化器自动改写为索引扫描
con.sql("""SELECT id, l2_distance(vec, [1.0,0.0,0.0]::FLOAT[3]) AS distFROM itemsORDER BY l2_distance(vec, [1.0,0.0,0.0]::FLOAT[3])LIMIT 3""").show()
左右滑动查看更多
距离函数
l2_distance`(L2)、`cosine_distance`(余弦)、`inner_product`(内积)左右滑动查看更多
搜索精度可调
sqlSET vexdb_ef_search =40;--默认 40,越大召回越高、越慢
左右滑动查看更多
访问VexDB-Lite GitHub:https://github.com/VexDB-THU/VexDB-Lite
访问VexDB-Lite 发布包:
https://github.com/VexDB-THU/VexDB-Lite/releases/latest
• END •

点击“阅读原文”,访问 VexDB-Lite GitHub
夜雨聆风