PGVector是一個開源的向量相似性搜尋工具,支援將向量資料與其它類型的資料共同進行儲存。同時支援以下功能:
單精確度向量、半精度向量、位向量和稀疏向量。
曼哈頓距離(L1)、歐幾裡得距離(L2)、 內積距離(inner product)、餘弦距離(cosine)、漢明距離(Hamming),Jaccard等主流距離度量。
精確最近鄰搜尋與模糊最近鄰搜尋。
HNSW、IVFFlat等主流的向量模糊相似性搜尋索引。
各類不同的PostgreSQL用戶端的語言。
使用此外掛程式的同時,可以使用其它PostgreSQL的優良特性,例如:ACID特性,按時間點恢複,多表JOIN等。
著作權說明
PolarDB PostgreSQL版包含pgvector擴充,本章節相關內容在pgvector的基礎上進行阿里雲向量資料庫的相關修改。
著作權協議:Copyright (c) 1996-2025, (The documentation for pgvector is under PostgreSQL Global Development Group)
單精確度向量
每個單精確度向量佔用4 * 維度 + 8位元組儲存空間。該向量的每個元素是一個單精確度浮點數(類似PostgreSQL中的real類型),且所有元素必須為有效且有限值(不能是NaN、Infinity或-Infinity)。單精確度向量最多可以有16,000個維度。
操作符
操作符 | 描述 | 版本要求 |
| 元素級加法。 | 無 |
| 元素級減法。 | 無 |
| 元素級乘法。 | >=0.5.0 |
| 串連。 | >=0.7.0 |
| 歐幾裡得距離(L2)。 | 無 |
| 負內積距離。 | 無 |
| 餘弦距離。 | 無 |
| 曼哈頓距離(L1)。 | >=0.7.0 |
函數
函數 | 描述 | 版本要求 |
| 將向量量化為二進位格式。 | >=0.7.0 |
| 計算向量之間的餘弦距離。 | 無 |
| 計算向量之間的內積距離。 | 無 |
| 計算向量之間的曼哈頓距離(L1)。 | >=0.5.0 |
| 計算向量之間的歐幾裡得距離(L2)。 | 無 |
| 使用歐幾裡得範數進行歸一化。 | >=0.7.0 |
| 從一個給定的向量中提取子向量。 | >=0.7.0 |
| 擷取向量的維度數。 | 無 |
| 計算向量的歐幾裡得範數。 | 無 |
彙總函式 | 描述 | 版本要求 |
| 計算平均值。 | 無 |
| 求和。 | >=0.5.0 |
半精度向量
每個半精度向量佔用2 * 維度 + 8位元組儲存空間。該向量的每個元素是一個半精度浮點數,且所有元素必須為有效且有限值(不能是NaN、Infinity或-Infinity)。半精度向量最多可以有16,000個維度。
操作符
運算子 | 描述 | 版本要求 |
| 元素級加法。 | >=0.7.0 |
| 元素級減法。 | >=0.7.0 |
| 元素級乘法。 | >=0.7.0 |
| 串連。 | >=0.7.0 |
| 歐幾裡得距離(L2)。 | >=0.7.0 |
| 負內積距離。 | >=0.7.0 |
| 餘弦距離。 | >=0.7.0 |
| 曼哈頓距離(L1)。 | >=0.7.0 |
函數
函數 | 描述 | 版本要求 |
| 將半精度向量量化為二進位格式。 | >=0.7.0 |
| 計算半精度向量之間的餘弦距離。 | >=0.7.0 |
| 計算半精度向量之間的內積距離。 | >=0.7.0 |
| 計算半精度向量之間的曼哈頓距離(L1)。 | >=0.7.0 |
| 計算半精度向量之間的歐幾裡得距離(L2)。 | >=0.7.0 |
| 計算半精度向量的歐幾裡得範數。 | >=0.7.0 |
| 使用歐幾裡得範數進行歸一化。 | >=0.7.0 |
| 從一個給定的向量中提取子向量。 | >=0.7.0 |
| 擷取向量的維度數。 | >=0.7.0 |
彙總函式 | 描述 | 版本要求 |
| 計算平均值。 | >=0.7.0 |
| 求和。 | >=0.7.0 |
位向量
每個位向量佔用dimensions / 8 + 8位元組儲存空間。更多詳情請參見Postgres 文檔。
操作符
運算子 | 描述 | 版本要求 |
| 漢明距離。 | >=0.7.0 |
| Jaccard距離。 | >=0.7.0 |
函數
函數 | 描述 | 版本要求 |
| 計算位向量之間的漢明距離。 | >=0.7.0 |
| 計算位向量之間的Jaccard距離。 | >=0.7.0 |
稀疏向量
每個稀疏向量佔用8 * 非零元素數量 + 16位元組儲存空間。該向量的每個元素是一個單精確度浮點數,且所有元素必須為有效且有限值(不能是NaN、Infinity或-Infinity)。稀疏向量最多可以有16,000個非零元素。
操作符
操作符 | 描述 | 版本要求 |
| 歐幾裡得距離(L2)。 | >=0.7.0 |
| 負內積距離。 | >=0.7.0 |
| 餘弦距離。 | >=0.7.0 |
| 曼哈頓距離(L1)。 | >=0.7.0 |
函數
函數 | 描述 | 版本要求 |
| 計算稀疏向量之間的餘弦距離。 | >=0.7.0 |
| 計算稀疏向量之間的內積距離。 | >=0.7.0 |
| 計算稀疏向量之間的曼哈頓距離(L1)。 | >=0.7.0 |
| 計算稀疏向量之間的歐幾裡得距離(L2)。 | >=0.7.0 |
| 計算稀疏向量的歐幾裡得範數。 | >=0.7.0 |
| 使用歐幾裡得範數進行歸一化。 | >=0.7.0 |