pgvector/pgvector
Open-source vector similarity search for Postgres
解決的問題
pgvector 是 PostgreSQL 的開源擴展,允許您在資料庫內部直接儲存與搜尋向量嵌入。這消除了對獨立專用向量資料庫的需求,讓您能將嵌入與關聯式資料一起保存,同時維持 ACID 相容性,並支援標準 SQL 查詢。
工作原理
它引入了新的 vector 資料類型與專用的距離運算子,用於執行相似性搜尋。支援多種向量類型,包括單精度、半精度(halfvec)、二進位(bit)與稀疏向量(sparsevec)。
為了加速搜尋,它提供兩種近似最近鄰(ANN)索引類型:
- HNSW(分層可導航小世界):一種多層圖索引,提供高查詢效能與更佳的速度-召回率權衡,但需要更多記憶體且建構時間較慢。
- IVFFlat(倒排檔案平鋪):將向量劃分為列表(群集),僅搜尋最近的列表,相比 HNSW 具有更快的建構速度與更低的記憶體用量。
適用對象
已使用 PostgreSQL 的開發人員與資料工程師,希望在 AI 應用(如 RAG 或推薦系統)中整合向量相似性搜尋,而無需增加新的基礎設施複雜性。
主要亮點
- PostgreSQL 整合:充分利用 PostgreSQL 的完整功能,如 JOIN、ACID 相容性、時間點還原等。
- 多樣化的向量支援:支援單精度、半精度、二進位與稀疏向量。
- 多種距離度量:支援 L2 距離、內積、餘弦距離、L1 距離、漢明距離與傑卡德距離。
- 混合搜尋:可與 PostgreSQL 全文搜尋結合,實現混合檢索。
- 進階索引:包含迭代索引掃描,可在使用
WHERE子句過濾時提升召回率。
相關
- 專案
- 專案
- 專案
- 專案
- 專案