提供意見
Cloud SQL 函式
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
MySQL | PostgreSQL | SQL Server
本頁面說明 Cloud SQL 函式。
向量轉換函式
下表列出可用於在 SELECT
陳述式中操控向量資訊的函式。
功能
說明
vector_to_string
輸入:VECTOR
輸出內容:STRING
將引數轉換為使用者可讀取的向量格式字串。輸入: 一個 VECTOR
類型的引數
輸出內容: 字串
語法:
vector_to_string(some_embedding )
string_to_vector
輸入:STRING
輸出內容:VECTOR
將字串轉換為使用者可讀的向量格式。這樣一來,您就能寫入要在向量中表示的值。輸入: 字串
語法:
string_to_vector('some_embedding ')
輸出: 一個向量型別的值。
搜尋函式
本節說明 Cloud SQL 搜尋函式。
KNN 函式
下表列出可用於計算 KNN 向量距離的函式。
功能
資料類型
說明
vector_distance
輸入:VECTOR
輸出內容:REAL
計算兩個 VECTOR
之間的向量距離。兩個 VECTOR
的尺寸必須相同。輸入 :必填。會採用兩個向量值,第三個選用字串引數則會指出距離測量值。預設值為 `l2_squared_distance。其他選項包括 `cosine_distance` 和 `dot_product`。
輸出 :兩個向量之間的距離。
例如:
SELECT vector_distance(string_to_vector('[1,-2,3]'), string_to_vector('[1,2,3]'), 'Distance_Measure=dot_product');
cosine_distance
輸入:VECTOR
輸出內容:REAL
用於計算兩個向量夾角餘弦的演算法。值越小,表示向量之間的相似度越高。輸入 :會接收兩個向量值。這些可以是資料欄名稱或常數。
輸出 :兩個向量之間的餘弦距離。
例如:
SELECT cosine_distance(string_to_vector('[1,2,3]'), string_to_vector('[1,1,1]'));
SELECT id
FROM t1
ORDER BY cosine_distance(string_to_vector('[1,2,3]'), embedding_column_name)
LIMIT 10;
dot_product
輸入:VECTOR
輸出內容:REAL
這個演算法會在兩個輸入向量之間執行內積運算,藉此計算並輸出單一標量值。輸入 :會接收兩個向量值。這些可以是資料欄名稱或常數。
輸出 :兩個向量的內積。
例如:
SELECT dot_product(string_to_vector('[1,2,3]'), string_to_vector('[1,1,1]'));
SELECT id FROM t1 ORDER BY dot_product(string_to_vector('[1,2,3]'), embbeding_column_name) LIMIT 10;
l2_squared_distance
輸入:VECTOR
輸出內容:REAL
這個演算法會在兩個輸入向量之間的每個維度上加總平方距離,以便測量兩者之間的歐氏距離。輸入 :會接收兩個向量值。這些可以是資料欄名稱或常數。
輸出 :兩個向量之間的 L2 平方距離。
例如:
SELECT l2_squared_distance(string_to_vector('[1,2,3]'), string_to_vector('[1,1,1]'));
SELECT id
FROM t1
ORDER BY l2_squared_distance(string_to_vector('[1,2,3]'), embbeding_column_name)
LIMIT 10;
ANN 函式
下表列出可用於計算向量距離的函式。
函式
資料類型
說明
approx_distance
輸入:VECTOR
輸出內容:REAL
使用所選演算法,找出符合距離度量值的前 k 個最接近的資料列。此函式會查詢向量欄的近似常數值。兩個嵌入資料欄的 VECTOR
類型和常數 VECTOR
必須具有相同的維度。在某些情況下,這個函式會改為使用 KNN (完全比對) 搜尋,而非 ANN 搜尋。您必須在使用此函式的查詢中加入限制。語法:
approx_distance(embedding_name ,
query_vector ,
'distance_measure=algorithm_name
[, num_leaves_to_search=value ]'
輸入內容:
embedding_name:向量嵌入資料欄的名稱,來自基礎資料表。
query_vector:類型為 `VECTOR` 的常數,可為 string_to_vector
的輸出值 (但不一定是)。
以半形逗號分隔的搜尋字串選項包括:
例如:
'distance_measure=dot_product,
num_leaves_to_search=100'
必要的 LIMIT 值: 指定的限制會用於返回的鄰居數量 (也稱為前 K 項)。
輸出 :與基礎資料表中前 K 個最相近的資料列的距離。
這個函式只能用於 ORDER BY
或 SELECT
清單。
例如:
SELECT id, approx_distance(embedding_column_name
string_to_vector('[1,1,1]'),
'distance_measure=cosine') dist from t1
ORDER BY dist LIMIT 10;
SELECT id
FROM t1
ORDER BY
approx_distance(
embedding_column_name
string_to_vector('[1,1,1]'),
'distance_measure=dot_product,num_leaves_to_search=100) LIMIT 4;
後續步驟
提供意見
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權 ,程式碼範例則為阿帕契 2.0 授權 。詳情請參閱《Google Developers 網站政策 》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-05-16 (世界標準時間)。
想進一步說明嗎?
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-05-16 (世界標準時間)。"],[],[]]