发送反馈
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-03-04。
需要向我们提供更多信息?
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-03-04。"],[],[]]