vchord
概览
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 1810 | vchord | 否 | 是 | 是 | 是 | 否 | 是 | - |
| 相关扩展 | vector vector vectorscale pgcontext vectorize pg_rrf pg_search vchord_bm25 pg_bestmatch pgml pg4ml |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.1.1 | 1817161514 | vchord | vector |
| RPM | PIGSTY | 1.1.1 | 1817161514 | vchord_$v | pgvector_$v |
| DEB | PIGSTY | 1.1.1 | 1817161514 | postgresql-$v-vchord | postgresql-$v-pgvector |
构建
您可以使用 pig build 命令构建 vchord 扩展的 RPM / DEB 包:
安装
您可以直接安装 vchord 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
预加载配置:
创建扩展:
用法
来源:
- 1.1.1 README
- Control and dependency
- Preload requirement
- 1.1.1 SQL objects
- Query settings
- 1.1.1 migration
- 1.1.1 release notes
vchord 使用 pgvector 的类型,为 PostgreSQL 增加近似向量索引,提供基于分区的 vchordrq 和基于图的 vchordg 访问方法。扩展依赖 vector,要求共享预加载,创建时需要超级用户权限。
创建与查询索引
将库加入已有预加载列表,保留其他条目,然后重启 PostgreSQL:
vector_l2_ops 对应 <->,vector_ip_ops 对应 <#>,vector_cosine_ops 对应 <=>。内积运算符返回负值,以适配索引升序扫描。图访问方法可使用同样的运算符类,应按工作负载选择索引方案:
范围查询与调优
扩展为范围检索提供显式球体谓词:
<<->>、<<#>> 和 <<=>> 分别是 L2、内积和余弦度量的球体谓词。探测数量取决于分区布局,应使用代表性数据调优。epsilon 设置控制重排序的权衡,图检索设置控制候选搜索范围。两种索引方法都是近似检索,选择参数前应检查召回率、过滤条件和查询计划。
1.1.1 的量化接口
rabitq8 和 rabitq4 保存量化向量。quantize_to_rabitq8 与 quantize_to_rabitq4 接受 vector 或 halfvec。1.1.1 为这两种量化类型新增 dequantize_to_vector 和 dequantize_to_halfvec 重载:
量化会损失精度,反量化返回近似结果。本次发布还替换了量化实现。安装匹配的库和 SQL 文件后,先为预加载库重启服务,再更新每个数据库中的扩展:
1.1.0 到 1.1.1 的脚本新增这四个转换重载,未声明索引格式迁移。更早版本的升级要求取决于起始版本。索引构建和预热会消耗资源,应按数据集大小安排。vchordg_prewarm 是对应的图索引辅助函数。control 声明扩展可重定位,在非默认模式中安装时,应限定扩展对象的模式或将安装模式加入搜索路径。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)