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-08-19 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-08-19 (世界標準時間)。"],[],[],null,[]]