提供意見
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-07-09 (世界標準時間)。
想進一步說明嗎?
[[["容易理解","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-07-09 (世界標準時間)。"],[],[]]