本页面上的部分或全部信息可能不适用于 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;
|
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):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"]],["最后更新时间 (UTC):2025-07-02。"],[],[]]