EDB Postgres 向量搜尋怎麼做?核心技巧公開
在生成式 AI(GenAI)時代,使用者期待系統能理解語意與意圖,而非僅比對文字。向量搜尋正是實現這種智慧搜尋的關鍵技術,可將資料轉換成向量,捕捉語意與特徵,為現代 AI 應用提供基礎。
什麼是向量搜尋?為什麼重要?
向量搜尋依據語意或資料特徵找到相似內容,即使文字或數值完全不相符。
例如,查詢「如何重設密碼?」時,系統仍能找到《登入憑證重設步驟》,即使字詞不同。這種以語意而非文字匹配的能力,是建構智慧應用的關鍵。
向量搜尋應用廣泛,包括:
- 語意搜尋:理解查詢意圖,超越關鍵字比對。像客服平台輸入「無法登入」,仍可找到「密碼重設」文章。
- 文件檢索:將報告、知識庫或工單轉為向量,快速找到最相關內容,並支援 RAG 提供上下文答案。
- 文件比較:銀行、保險或稽核可比對大量文件,即使改寫或重組,也能找出重複或相似內容。
- 圖像相似性搜尋:向量可表示視覺特徵,電商推薦相似商品,媒體檢測重複或近似圖片。
- 推薦系統:將使用者與商品向量存於 Postgres,依語意相似度推薦商品、電影或文章,考量偏好、購買紀錄或評論情感。
透過 EDB Postgres 的 pgvector 擴充功能,向量資料可直接存放、索引與查詢,讓 AI 任務與企業現有交易或分析工作無縫整合。
向量搜尋如何運作?
向量搜尋的運作方式,是將資料轉成向量(embedding),再依相似度找出最相關內容。具體流程可分為四個步驟:
- 向量生成:使用模型(如 OpenAI、BERT、CLIP)將文字、圖片或音訊轉為多維浮點數向量,就像為語意建立「GPS座標」,概念相似的向量會聚在一起。
- 存放於 Postgres:透過 pgvector 將向量存入專用欄位,每列對應一份文件、圖片或資料紀錄。
- 相似度搜尋:查詢先轉為向量,再比對資料庫向量的相似度(如餘弦距離或歐氏距離)。
- 排序與回傳:系統依相似度分數排序,回傳最相關結果。
這種架構簡單卻強大,將結構化資料、非結構化資料與向量搜尋整合在同一 Postgres 平台中,實現高效、統一的搜尋體驗。
向量搜尋的相似度指標
向量搜尋的核心在於比較向量,找出哪些已存向量最接近查詢向量。不同的距離指標決定了「相似度」的計算方式。
兩個最常用的指標是 餘弦相似度 (Cosine Similarity) 與 歐氏距離 (Euclidean Distance),兩者皆由 pgvector 原生支援。
| 方面 | 餘弦相似度 (Cosine Similarity) | 歐氏距離 (Euclidean Distance) |
|---|---|---|
| 定義 | 比較兩向量夾角,只看方向,忽略長度 | 比較兩向量直線距離(L2 範數),考慮方向與長度 |
| 值範圍 | -1 到 1(實務上多為 0~1),越高越相似 | 0 到 ∞,越低越相似 |
| 對向量長度影響 | 忽略長度差異,方向相同視為相似 | 對長度敏感,尺度差異會影響距離 |
| 適用場景 | 文字向量,語意在方向上,適合已標準化特徵空間 | 圖像或特徵集,數值大小有意義(如像素強度、顏色直方圖) |
| 文字搜尋 | 適合句子/詞向量(BERT、OpenAI、fastText),效果佳 | 可用,但若向量尺度不同可能結果不準確 |
| 影像搜尋 | 適合標準化深度特徵向量(CLIP、ResNet),尺度不影響 | 適合原始或未標準化特徵,特別是像素空間或未縮放 CNN 輸出 |
| 計算成本 | 標準化後與歐氏距離相似,通常更快 | 複雜度類似,可能需先標準化以公平比較 |
| 對資料縮放敏感度 | 不受統一縮放影響 | 對縮放敏感,需要預處理/標準化 |
向量搜尋的索引與擴充
當資料量從數千筆向量增加到數百萬筆時,逐一比對每個向量的「暴力搜尋」成本太高,這時向量索引就很重要。
什麼是向量索引?
向量索引會將向量依特徵分群或組織,讓系統能快速找到相似向量,而不需掃描整個資料集。
常見向量索引類型
- IVF(Inverted File Index):將向量分成多個群集,僅在最相關群集內搜尋。
- HNSW(Hierarchical Navigable Small World):圖結構索引,將相似向量連結,提供超快查詢速度。
- PQ(Product Quantization):將向量壓縮成較小表示,降低儲存與計算成本。
近似最近鄰搜尋(ANN)
ANN 能有效擴充向量搜尋規模,不必找出精確最近鄰,只找到「近似最近鄰」,以極小精度換取大幅效能提升。
對於即時 AI 場景,如:聊天機器人、推薦系統或語意搜尋等,ANN 索引提供了速度與精準度的理想平衡。
EDB Postgres AI 向量搜尋
雖然市面上出現許多新向量資料庫(如 Pinecone、Milvus、Weaviate 等),企業仍偏好 EDB Postgres,原因包括:
- 統一平台
利用 pgvector,無需額外資料庫存放向量,AI 工作負載可直接在處理交易或分析資料的 Postgres 實例中運行,架構更簡單。 - 企業級可靠性
EDB Postgres 延續 Postgres 多年的穩定性,提供企業級可靠性、複寫與高可用性,適合關鍵任務,不同於實驗性向量資料庫。 - 無縫整合
支援各種擴充套件、FDW 與整合框架,讓結構化資料、向量與外部 AI 模型能混合分析。 - 彈性擴充
搭配 EDB Postgres Advanced Server、WarehousePG 或 Postgres Distributed,可跨節點擴充向量運算,同時兼顧分析效能與向量相似度搜尋。 - 治理與安全
金融、公共單位等行業對資料治理與自主管控要求高,在 EDB Postgres 上執行向量搜尋可確保資料主權、稽核與合規性。
結語
在生成式 AI 的應用中,向量搜尋是核心,但穩定性才是落地關鍵。透過 EDB Postgres 與 pgvector 的整合,你可以在熟悉的 SQL 環境中處理語意搜尋與 RAG,不需要額外維護一套複雜的專用向量資料庫。
推薦閲讀:資料庫遷移全攻略:掌握變更管理一次看懂
本文翻譯自:Getting Started with Vector Search in EDB Postgres
想了解更多資訊,歡迎聯絡我們,或是 加入歐立威 Line 好友!











