`sqlite-vec` 技术文档

sqlite-vec 技术文档

sqlite-vec Work-in-progress vector search SQLite extension that runs anywhere. sqlite-vec 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-vec

欢迎使用sqlite-vec,这是一个轻量级且“足够快”的向量搜索SQLite扩展,它可以在任何地方运行!作为sqlite-vss的后继者,本指南将帮助您了解并有效地运用这个强大的工具。

安装指南

步骤一:环境准备

确保您的系统已经安装了SQLite,并且具备相应的编程语言环境(如Python、Node.js等),以利用sqlite-vec的不同绑定。

步骤二:安装sqlite-vec

Python 用户

执行命令 pip install sqlite-vec 来安装。

Node.js 用户

通过 npm install sqlite-vec 添加到项目依赖。

其他语言
  • Ruby: 使用 gem install sqlite-vec
  • Go: 执行 go get -u github.com/asg017/sqlite-vec/bindings/go
  • Rust: 运行 cargo add sqlite-vec
  • 对于Ruby、Go、Rust等其他语言,也各自提供了详细的官方文档链接,请参考上文的表格。

对于特定框架或工具(如Datasette、rqlite、sqlite-utils)的集成方法,访问对应的文档页面获取详细步骤。

步骤三:下载虚拟表扩展

在SQLite会话中,使用 .load 命令加载 ./vec0 扩展文件,例如 .load ./path/to/vec0

项目的使用说明

创建虚拟表

您可以创建一个虚拟表来存储向量数据。以下示例展示了如何创建一个用于存储浮点数组的虚拟表:

CREATE VIRTUAL TABLE vec_examples USING vec0(sample_embedding FLOAT[8]);
插入数据

向表中插入向量数据,可以是JSON格式或紧凑的二进制格式:

INSERT INTO vec_examples(rowid, sample_embedding)
VALUES
  (1, '[-0.200, 0.250, ..., -0.924]'),
  (2, '[0.443, -0.501, ..., 0.362]'), -- 省略中间值以节省空间
  ...
查询操作

执行KNN风格查询,找到最近邻的向量:

SELECT rowid, distance
FROM vec_examples
WHERE sample_embedding MATCH '[0.890, 0.544, ..., 0.175]'
ORDER BY distance
LIMIT 2;

项目API使用文档

尽管SQLite本身不提供API接口,但sqlite-vec扩展定义了一套SQL语法扩展来处理向量数据。主要通过.match操作符实现向量距离计算,支持基于距离的排序和限流查询,比如上述查询示例中的使用。

关键函数和操作符

  • .match: 用于执行向量匹配查询,根据提供的查询向量返回最相似的记录。
  • distance: 返回与查询向量的距离,作为查询结果的一部分。

注意事项

  • 由于sqlite-vec目前处于pre-v1阶段,可能会有破坏性的变更,请在生产环境中谨慎使用。
  • 访问相关网站或文档获取最新信息和高级功能指导,例如 安装详情 和各语言的详细使用案例。

加入开发者社区,贡献代码或反馈,共同推进这一项目的成熟和稳定。如果您对赞助或合作感兴趣,请联系作者获得更多详情。


以上即为sqlite-vec的基本技术文档概述,更多高级特性和示例可在官方文档和GitHub仓库中找到。祝您使用愉快!

sqlite-vec Work-in-progress vector search SQLite extension that runs anywhere. sqlite-vec 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-vec

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温允旭Theobold

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值