MySQL | PostgreSQL | SQL Server
本頁面定義 MySQL 資料定義語言 (DDL) 陳述式的 Cloud SQL 擴充功能語法。
VECTOR 陳述式
本節提供 VECTOR
陳述式相關資訊。
建立向量索引
建立向量索引。
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 向量搜尋總覽。
- 瞭解如何在執行個體上啟用及停用向量嵌入。
- 瞭解如何生成向量嵌入。
- 瞭解如何建立向量索引。
- 瞭解如何對向量嵌入執行搜尋。