MySQL
| PostgreSQL
| SQL Server
本页面定义了 Cloud SQL 对 MySQL 数据定义语言 (DDL) 语句的扩展的语法。
VECTOR 语句
本部分介绍了 VECTOR
语句。
CREATE VECTOR INDEX
创建向量索引。
CREATE VECTOR INDEX index_name
[opt_index_type]
ON table_name (column_name)
[index_options]
where opt_index_type is:
| USING SCANN
where index_option is :
USING SCANN
| [QUANTIZER=SQ8]
| [NUM_LEAVES=int_value]
| DISTANCE_MEASURE=L2_SQUARED|DOT_PRODUCT|COSINE
参数
USING SCANN
:必填。创建向量索引时要使用的索引类型。此算法会创建 ScaNN 索引。SCANN
是唯一支持的值。您无法修改此参数。QUANTIZER
:可选。此参数用于将高维向量映射到压缩表示法。SQ8
是唯一支持的值。您无法修改此参数。NUM_LEAVES
:可选。指定要构建的分区(叶)数量。 只有在您对 ANN 搜索和数据集非常了解的情况下,才应将此设置从默认设置更改为其他设置。指定的数字不得大于基表中的嵌入数量。DISTANCE_MEASURE
:必填。用于计算两个向量相似度的数学公式。您必须在此参数中设置与approx_distance
搜索选项中的距离相同的距离测量单位。支持的侧边栏包括:L2_SQUARED
COSINE
DOT_PRODUCT
示例
以下示例展示了如何在 table_name
表上创建向量索引
CREATE
VECTOR INDEX index1
ON table_name(vector_column_name)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;
ALTER TABLE
向现有表添加向量索引。向量搜索需要使用 SCANN
作为索引选项,且量化类型必须为 SQ8
。
ALTER TABLE table_name
ADD VECTOR INDEX index_name(key_part)[index_option];
WHERE key_part is:{ _col_name_[(_length_)] | (_expr_) }
WHERE
index_option
is:USING
SCANN
| [QUANTIZER = SQ8]
| [NUM_LEAVES = int_value]
| DISTANCE_MEASURE
= L2_SQUARED | DOT_PRODUCT | COSINE
参数
USING SCANN
:必填。创建向量索引时使用的索引类型。此算法会创建 ScaNN 索引。SCANN
是唯一支持的值。您无法修改此参数。QUANTIZER
:可选。此参数用于将高维向量映射到压缩表示法。SQ8
是唯一支持的值。您无法修改此参数。NUM_LEAVES
:可选。指定要构建的分区(叶)数量。 只有在您对 ANN 搜索和数据集非常了解的情况下,才应将此设置从默认设置更改为其他设置。指定的数字不得大于基表中的嵌入数量。DISTANCE_MEASURE
:必填。用于计算两个向量相似度的数学公式。您必须在此参数中设置与approx_distance
搜索选项中的距离相同的距离测量单位。支持的侧边栏包括:L2_SQUARED
COSINE
DOT_PRODUCT
示例
以下示例展示了如何在 t1
表上添加向量索引。
ALTER TABLE t1 ADD VECTOR INDEX index1(j)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;
后续步骤
- 阅读 Cloud SQL 上的向量搜索概览。
- 了解如何在实例中启用和停用向量嵌入。
- 了解如何生成向量嵌入。
- 了解如何创建矢量索引。
- 了解如何对向量嵌入执行搜索。