pgvector 是 PostgreSQL (又稱 Postgres) 的擴充功能,可簡化向量處理作業,讓您直接在關聯式資料庫儲存、搜尋及建立向量索引。
有了 pgvector,您就能輕鬆將相似度搜尋等進階功能新增至應用程式和 AI 代理,而且還能擴充規模,不必移動資料或變更應用程式架構,即可連結新的向量資料類型。
pgvector 是 PostgreSQL 的開放原始碼擴充功能,可協助您直接在現有的 PostgreSQL 資料庫中儲存、建立索引及搜尋高維度向量。pgvector 以支援下列功能聞名:
向量會以數字表示資料,並擷取資料的主要特徵,將資料對應至虛擬數學空間。在這個空間中,如果是相似的項目 (例如字詞、圖片或物件),彼此位置會很靠近。
舉例來說,傳統的關鍵字搜尋不會將「coat」和「jacket」視為相似字詞,因為這兩個字的字母差異很大。電子商務系統若想將這些關鍵字整合在一起,就必須手動完成。不過,這兩個詞的向量表示法會非常接近,因為它們的意義相似,因此能為使用者提供更準確的搜尋結果,並節省開發人員的時間。
同樣地,如果拍攝兩張不同的貓咪相片,像素可能會大相逕庭。不過,在數學空間中,這兩張圖片的向量嵌入會非常接近,就像人類可以輕易辨識出兩者都是貓的圖片:

為實現這點,嵌入模型會將原始資料 (例如圖片或文字) 轉換為向量嵌入,而 pgvector 會將這些嵌入儲存在資料庫中。使用者提交查詢時,輸入內容也會轉換成向量。接著,pgvector 會計算查詢向量與儲存向量之間的距離,有效找出相似度分數最高的「最鄰近的項目」。
想瞭解不同類型的最鄰近項目搜尋嗎?歡迎參考我們的生成式 AI 應用程式開發指南。
PostgreSQL 是強大的開放原始碼關聯式資料庫管理系統,可使用資料表、資料列和資料欄,處理結構化資料。
pgvector 是在 PostgreSQL 內執行的擴充功能。這項服務會在資料庫中新增「向量」資料類型,讓您能儲存及處理向量嵌入,以及標準營運資料。
否,pgvector 是直接整合至現有 PostgreSQL 資料庫的擴充功能。您不必管理新的或獨立的基礎架構,就能新增進階 AI 和搜尋功能。
如要支援現今的 AI 導向功能,您必須能夠儲存及管理向量嵌入。
PostgreSQL 本身功能強大,但由於資料嚴格以資料表、資料列和資料欄的形式呈現,查詢功能大多僅限於關鍵字和模式比對。
在 AI 領域中,文字、圖片和音訊等複雜資料會編碼為向量表示法。這些編碼可讓 AI 模型掌握資料中的脈絡和語意關係,是智慧搜尋、推薦和生成式 AI 等功能的基礎。
pgvector 擴充功能可將語意搜尋功能導入 PostgreSQL,使用向量嵌入根據查詢的意義尋找結果,而非像 SQL 一樣只比對關鍵字。這個程序稱為相似度搜尋,可讓您輕鬆將進階搜尋功能直接新增至應用程式,不必重新設計架構,也不用將資料移至個別的向量資料庫。
想進一步瞭解向量嵌入嗎?歡迎參考我們的生成式 AI 應用程式開發指南。
pgvector 可處理高維度向量,因此支援多種進階應用程式。
傳統關聯式資料庫的關鍵字比對功能,往往無法找出資料中的重要關聯。相似度搜尋會使用歐幾里得距離和餘弦距離等指標比較向量的鄰近程度,找出更深層的模式,這對圖像辨識和語意搜尋等應用程式至關重要,因為這類應用程式會根據意義對結果進行排名。舉例來說,在電子商務領域,相似度搜尋可分析使用者行為並找出相關商品,進而提供產品推薦。
AI 代理採用以向量為基礎的自然語言處理技術,可理解對話脈絡,提供更個人化的對話體驗和更準確的回覆。多語支援功能可提升虛擬助理和客戶服務平台的效能。
pgvector 可儲存及查詢向量嵌入,有助於找出資料中的異常模式,進而強化 AI 工作流程。透過分析向量鄰近程度,這項技術可即時偵測異常狀況,用於防範詐欺、維護網路安全或進行品質驗證 (QC)。
情緒分析功能會分析訊息意圖,讓您適當轉送負面留言,加快處理速度,並提供量身打造的解決方案。
pgvector 運用 PostgreSQL 的擴充性、交易支援和強大可靠性,有效管理高維度資料集。此外,這項服務採用熟悉的 SQL 語法,因此現有團隊也能輕鬆上手,不必使用其他專門用於向量建立索引和搜尋的工具或基礎架構。
輕鬆整合至現有的 PostgreSQL 應用程式。
提升 PostgreSQL 的擴充性,以處理不斷增加的資料集。
提供可自訂的功能,例如距離指標和索引。
承襲 PostgreSQL 值得信賴的安全性和可靠性。
提供順暢無礙的結構化和非結構化資料查詢體驗。
提供方便開發人員使用的解決方案,可處理大規模的高維度資料。
想尋找同時擅長傳統 SQL 查詢和現代向量搜尋的單一資料庫嗎?您可以考慮 AlloyDB for PostgreSQL。AlloyDB 採用 Google 開發的 ScaNN (可擴充的最近鄰) 向量相似度搜尋演算法,處理大型資料庫的交易和分析工作負載時,效能遠勝其他雲端式 PostgreSQL 服務。
如要瞭解 AlloyDB 如何同時搜尋結構化和非結構化資料,請參閱這篇文章。
Cloud SQL 和 AlloyDB for PostgreSQL 支援 pgvector,讓您能使用標準 SQL 指令儲存及查詢向量嵌入。
使用偏好的 PostgreSQL 用戶端 (例如 psql、pgAdmin 或 Google Cloud 控制台) 連線至 Cloud SQL 或 AlloyDB 執行個體。
執行下列 SQL 指令,為資料庫啟用擴充功能。這項操作每個資料庫只需執行一次。
建立新資料表 (或修改現有資料表),加入向量資料欄。您必須指定向量的維度。舉例來說,如要建立資料表來儲存 3 維嵌入,可使用以下指令:
您可以像處理標準資料一樣插入向量嵌入。向量的格式為以方括號括住的陣列。
現在您可以查詢資料,找出最鄰近的項目。<-> 運算子會計算歐幾里得距離 (L2 距離),這通常用於找出最相似的項目。
對於較大型的資料集,新增索引可大幅提升搜尋效能。HNSW 和 ScaNN 索引都是常見的選擇。以下是 HNSW 的範例: