Drizzle | 使用 pgvector 扩展进行向量相似性搜索
This guide assumes familiarity with:
- 您应该安装
drizzle-orm@0.31.0
和 drizzle-kit@0.22.0
或更高版本。
要在 PostgreSQL 中使用 Drizzle ORM 实现向量相似性搜索,您可以使用 pgvector
扩展。这个扩展提供了一系列函数来处理向量并进行相似性搜索。
目前,Drizzle 并不会自动创建扩展,因此您需要手动创建。创建一个空的迁移文件并添加 SQL 查询:
为了进行相似性搜索,您需要创建一个包含向量列的表,并在该列上创建一个 HNSW
或 IVFFlat
索引以提高性能:
embedding
列用于存储指南描述的向量嵌入。向量嵌入是一种对某些数据的表示。它将不同类型的数据转换为语言模型可以处理的通用格式(向量)。这使我们能够执行数学运算,例如测量两个向量之间的距离,以确定两个数据项是多么相似或不同。
在此示例中,我们将使用 OpenAI
模型生成描述的 嵌入:
要通过嵌入搜索相似的指南,您可以使用 gt
和 sql
操作符与 cosineDistance
函数来计算 embedding
列与生成的嵌入之间的相似性: