本頁面中的部分或全部資訊可能不適用於 Trusted Cloud by S3NS。
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-02 (世界標準時間)。
[[["容易理解","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-07-02 (世界標準時間)。"],[],[]]