MySQL
| PostgreSQL
| SQL Server
本页面定义了针对 MySQL 数据定义语言 (DDL) 语句的 Cloud SQL 扩展的语法。
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
Parameters
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
Parameters
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 中的向量搜索概览。
- 了解如何在实例上启用和停用向量嵌入。
- 了解如何生成向量嵌入。
- 了解如何创建向量索引。
- 了解如何对向量嵌入执行搜索。