This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 86eb8f1b958 index management in ANN (#3152)
86eb8f1b958 is described below

commit 86eb8f1b95816f69c538759dbc0689aabe31dd71
Author: ivin <[email protected]>
AuthorDate: Fri Dec 5 11:45:33 2025 +0800

    index management in ANN (#3152)
    
    ## Versions
    
    - [x] dev
    - [x] 4.x
    - [ ] 3.x
    - [ ] 2.1
    
    ## Languages
    
    - [x] Chinese
    - [x] English
    
    ## Docs Checklist
    
    - [ ] Checked by AI
    - [ ] Test Cases Built
---
 docs/ai/vector-search/index-management.md          | 295 +++++++++++++++++++++
 .../table-and-view/index/CREATE-INDEX.md           |  14 +-
 .../table-and-view/index/DROP-INDEX.md             |   2 +-
 .../table-and-view/index/SHOW-INDEX.md             |   2 +-
 .../current/ai/vector-search/index-management.md   | 295 +++++++++++++++++++++
 .../table-and-view/index/CREATE-INDEX.md           |  12 +-
 .../table-and-view/index/DROP-INDEX.md             |   2 +-
 .../table-and-view/index/SHOW-INDEX.md             |   2 +-
 .../ai/vector-search/index-management.md           | 295 +++++++++++++++++++++
 .../table-and-view/index/CREATE-INDEX.md           |  14 +-
 .../table-and-view/index/DROP-INDEX.md             |   2 +-
 .../table-and-view/index/SHOW-INDEX.md             |   2 +-
 sidebars.ts                                        |   1 +
 .../ai/vector-search/index-management.md           | 295 +++++++++++++++++++++
 .../table-and-view/index/CREATE-INDEX.md           |  16 +-
 .../table-and-view/index/DROP-INDEX.md             |   2 +-
 .../table-and-view/index/SHOW-INDEX.md             |   2 +-
 versioned_sidebars/version-4.x-sidebars.json       |   3 +-
 18 files changed, 1240 insertions(+), 16 deletions(-)

diff --git a/docs/ai/vector-search/index-management.md 
b/docs/ai/vector-search/index-management.md
new file mode 100644
index 00000000000..8c6bc135d0f
--- /dev/null
+++ b/docs/ai/vector-search/index-management.md
@@ -0,0 +1,295 @@
+---
+{
+    "title": "ANN Index Management",
+    "language": "en"
+}
+---
+
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+
+# ANN Index Management
+
+## Overview
+
+Approximate Nearest Neighbor (ANN) indexes in Apache Doris enable efficient 
vector similarity search for high-dimensional data. Since from Doris 4.x, the 
universal index operation syntax has also been extended to cover ANN indexes. 
This article will introduce the specific SQL syntax for ANN index-related 
operations and provide detailed parameter explanations.
+
+ANN indexes are built on vector columns (typically `ARRAY<FLOAT> NOT NULL` 
type) and support distance metrics include L2 distance and inner product.
+
+## Creating ANN Indexes
+
+ANN indexes can be created using the `CREATE INDEX` statement with `USING 
ANN`. There are two main approaches:
+
+1. **Define the index during table creation**: The index is built 
synchronously as data is loaded.
+
+### Syntax
+
+```sql
+CREATE TABLE [IF NOT EXISTS] <table_name> (
+  <columns_definition>
+  INDEX <index_name> (<vector_column) USING ANN PROPERTIES (
+    "<key>" = "<value>" [, ...]
+  )
+)
+[ <key_type> KEY (<key_cols>)
+    [ CLUSTER BY (<cluster_cols>) ]
+]
+[ COMMENT '<table_comment>' ]
+[ <partitions_definition> ]
+[ DISTRIBUTED BY { HASH (<distribute_cols>) | RANDOM }
+    [ BUCKETS { <bucket_count> | AUTO } ]
+]
+[ <roll_up_definition> ]
+[ PROPERTIES (
+    -- Table property
+    <table_property>
+    -- Additional table properties
+    [ , ... ])
+]
+```
+
+2. **Create the index separately**: Define the index first, then build it on 
existing data using `BUILD INDEX`.
+
+### Syntax
+
+```sql
+CREATE INDEX [IF NOT EXISTS] <index_name>
+             ON <table_name> (<column_name>)
+             USING ANN
+             PROPERTIES ("<key>" = "<value>" [, ...])
+             [COMMENT '<index_comment>']
+
+-- or
+ALTER TABLE <table_name> ADD INDEX <index_name>(<column_name>)
+             USING ANN
+             [PROPERTIES("<key>" = "<value>" [, ...])]
+             [COMMENT '<index_comment>']
+```
+
+### General Properties
+
+- `index_type`: The type of ANN index. Supported values: `"ivf"` or `"hnsw"`.
+- `metric_type`: The distance metric. Supported values: `"l2_distance"`, 
`"inner_product"`.
+- `dim`: The dimension of the vector column.
+- `quantizer`: The quantizer type. Supported values: `flat`, `sq4`, `sq8`, 
`pq`. Default to `flat` when not specified.
+
+### Index-Specific Properties
+
+#### IVF Index Properties
+
+- `nlist`: Number of clusters (inverted lists). Default: 1024. Higher values 
improve recall but increase build time and memory usage.
+
+#### HNSW Index Properties
+
+- `max_degree`: Maximum number of connections per node. Default: 32. Affects 
recall and query performance.
+- `ef_construction`: Size of the candidate queue during index construction. 
Default: 40. Higher values improve graph quality but increase build time.
+
+### Quantization-Specific Properties
+
+for quantizer property:
+
+- `sq4`: Scalar Quantization (SQ), uses 4-bit integers instead of the typical 
32-bit floating point numbers to store each dimension value of a vector. 
+- `sq8`: Scalar Quantization (SQ), uses 8-bit integers instead of the typical 
32-bit floating point numbers to store each dimension value of a vector. 
+- `pq`: Product Quantization (PQ), two additional parameters, `pq_m` and 
`pq_nbits` are required in the properties.
+
+#### Product Quantization Properties
+
+- `pq_m`: Specifies how many subvectors are used (vector dimension dim must be 
divisible by pq_m).
+- `pq_nbits`: The number of bits used to represent each subvector, in faiss 
pq_nbits is generally required to be no greater than 24.
+
+### Examples
+
+#### Create table with ANN index
+
+```sql
+CREATE TABLE tbl_ann (
+    id int NOT NULL,
+    embedding array<float> NOT NULL,
+    INDEX ann_index (embedding) USING ANN PROPERTIES(
+        "index_type"="hnsw",
+        "metric_type"="l2_distance",
+        "dim"="128"
+    )
+) ENGINE=OLAP
+DUPLICATE KEY(id)
+DISTRIBUTED BY HASH(id) BUCKETS 1
+PROPERTIES ("replication_num" = "1");
+```
+
+#### IVF Index
+
+```sql
+CREATE INDEX ann_ivf_index ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024"
+);
+```
+
+#### HNSW Index
+
+```sql
+CREATE INDEX ann_hnsw_index ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40"
+);
+```
+
+#### HNSW Index with SQ
+
+```sql
+CREATE INDEX ann_hnsw_sq ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40",
+    "quantizer"="sq8"
+);
+```
+
+#### HNSW Index with PQ
+
+```sql
+CREATE INDEX ann_hnsw_pq ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40",
+    "quantizer"="pq",
+    "pq_m"="8",
+    "pq_nbits"="8"
+);
+```
+
+#### IVF Index with SQ
+
+```sql
+CREATE INDEX ann_ivf_sq ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024",
+    "quantizer"="sq8"
+);
+```
+
+#### IVF Index with PQ
+
+```sql
+CREATE INDEX ann_ivf_pq ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024",
+    "quantizer"="pq",
+    "pq_m"="8",
+    "pq_nbits"="8"
+);
+```
+
+## Building ANN Indexes
+
+For indexes created separately (not during table creation), use `BUILD INDEX` 
to build the index on existing data. This operation is asynchronous.
+
+### Syntax
+
+```sql
+BUILD INDEX <index_name> ON <table_name> [PARTITION (<partition_name> [, ...])]
+```
+
+### Monitoring Build Progress
+
+Use `SHOW BUILD INDEX` to check the status of index build jobs.
+
+```sql
+-- view all the progress of BUILD INDEX tasks [for a specific database]
+SHOW BUILD INDEX [FROM db_name];
+
+-- view the progress of BUILD INDEX tasks for a specific table
+SHOW BUILD INDEX WHERE TableName = "<table_name>";
+```
+
+The output includes columns such as `JobId`, `TableName`, `State` (e.g., 
`FINISHED`, `RUNNING`), and `Progress`, for example:
+
+```sql
+mysql> show build index where TableName = "sift_1M";
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+| JobId         | TableName | PartitionName | AlterInvertedIndexes             
                                                                                
                                   | CreateTime              | FinishTime       
       | TransactionId | State    | Msg  | Progress |
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+| 1764579876673 | sift_1M   | sift_1M       | [ADD INDEX idx_test_ann 
(`embedding`) USING ANN PROPERTIES("dim" = "128", "index_type" = "ivf", 
"metric_type" = "l2_distance", "nlist" = "1024")],  | 2025-12-01 17:59:54.277 | 
2025-12-01 17:59:56.987 | 82            | FINISHED |      | NULL     |
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+1 row in set (0.00 sec)
+```
+
+### Canceling Index Builds
+
+To cancel an ongoing index build:
+
+```sql
+CANCEL BUILD INDEX ON <table_name> [(<job_id> [, ...])]
+```
+
+## Dropping ANN Indexes
+
+Remove an ANN index using `DROP INDEX`.
+
+### Syntax
+
+```sql
+DROP INDEX [IF EXISTS] <index_name> ON [<db_name>.]<table_name>
+
+-- or
+ALTER TABLE [<db_name>.]<table_name> DROP INDEX <index_name>
+```
+
+
+## Showing ANN Indexes
+
+Display information about indexes on a table using `SHOW INDEX` or `SHOW 
CREATE TABLE`.
+
+### Syntax
+
+```sql
+SHOW INDEX[ES] FROM [<db_name>.]<table_name> [FROM <db_name>]
+
+-- or
+SHOW CREATE TABLE [<db_name>.]<table_name>
+```
+
+### Example Output
+
+```sql
+mysql> SHOW INDEX FROM sift_1M;
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+| Table   | Non_unique | Key_name     | Seq_in_index | Column_name | Collation 
| Cardinality | Sub_part | Packed | Null | Index_type | Comment | Properties    
                                                                         |
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+| sift_1M |            | idx_test_ann |              | embedding   |           
|             |          |        |      | ANN        |         | ("dim" = 
"128", "index_type" = "ivf", "metric_type" = "l2_distance", "nlist" = "1024") |
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+1 row in set (0.01 sec)
+```
+
+The output includes columns such as `Table`, `Key_name`, `Index_type` (shows 
`ANN` for ANN indexes), and `Properties` (containing the index configuration).
diff --git 
a/docs/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md 
b/docs/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
index a3915b9b0e5..6123c1b5cc7 100644
--- a/docs/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
+++ b/docs/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
@@ -15,7 +15,7 @@ Create a new index on a table. The table name and index name 
must be specified.
 ```sql
 CREATE INDEX [IF NOT EXISTS] <index_name> 
              ON <table_name> (<column_name> [, ...])
-             [USING {INVERTED | NGRAM_BF}]
+             [USING {INVERTED | NGRAM_BF | ANN}]
              [PROPERTIES ("<key>" = "<value>"[ , ...])]
              [COMMENT '<index_comment>']
 ```
@@ -95,4 +95,14 @@ The user executing this SQL command must have at least the 
following permissions
 
   ```sql
   CREATE INDEX index2 ON table1 USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="1024");
-  ```
\ No newline at end of file
+  ```
+
+- Create an ANN index `index3` on `table1` (`embedding`) vector column.
+
+  ```sql
+  CREATE INDEX index3 ON table1 (`embedding`) USING ANN PROPERTIES(
+      "index_type"="hnsw",
+      "metric_type"="l2_distance",
+      "dim"="128"
+  );
+  ```
diff --git a/docs/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md 
b/docs/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
index ae328b4239f..104e775f068 100644
--- a/docs/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
+++ b/docs/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
@@ -7,7 +7,7 @@
 
 ## Description
 
-This statement is used to delete an index with a specified name from a table. 
Currently, only bitmap indexes are supported.
+This statement is used to delete an index with a specified name from a table. 
Currently, only bitmap indexes, inverted indexes and ann indexes are supported.
 
 ## Syntax
 
diff --git a/docs/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md 
b/docs/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
index 10208885d01..434d1f5f1c9 100644
--- a/docs/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
+++ b/docs/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
@@ -7,7 +7,7 @@
 
 ## Description
 
-This statement is used to display information about indexes in a table. 
Currently, only bitmap indexes are supported.
+This statement is used to display information about indexes in a table. 
Currently, only bitmap indexes, inverted indexes and ann indexes are supported.
 
 ## Syntax
 
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/ai/vector-search/index-management.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/ai/vector-search/index-management.md
new file mode 100644
index 00000000000..6a1cffd4fcc
--- /dev/null
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/ai/vector-search/index-management.md
@@ -0,0 +1,295 @@
+---
+{
+    "title": "ANN 索引管理",
+    "language": "zh-CN"
+}
+---
+
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+
+# ANN 索引管理
+
+## 概述
+
+Apache Doris 中的近似最近邻 (ANN) 索引支持对高维数据进行高效的向量相似性搜索。从 Doris 4.x 开始,通用索引操作语法也支持了 
ANN 索引。本文将介绍 ANN 索引相关操作的具体 SQL 语法,并提供详细的参数说明。
+
+ANN 索引建立在向量列上(`ARRAY<FLOAT> NOT NULL` 类型),支持两种度量类型包括 l2 distance(也叫欧式距离)和inner 
product(内积)。
+
+## 创建 ANN 索引
+
+可以使用带有 `USING ANN` 的 `CREATE INDEX` 语句创建 ANN 索引。有两种主要方法:
+
+1. **在表创建期间定义索引**:索引在数据加载时同步构建。
+
+### 语法
+
+```sql
+CREATE TABLE [IF NOT EXISTS] <table_name> (
+  <columns_definition>
+  INDEX <index_name> (<vector_column) USING ANN PROPERTIES (
+    "<key>" = "<value>" [, ...]
+  )
+)
+[ <key_type> KEY (<key_cols>)
+    [ CLUSTER BY (<cluster_cols>) ]
+]
+[ COMMENT '<table_comment>' ]
+[ <partitions_definition> ]
+[ DISTRIBUTED BY { HASH (<distribute_cols>) | RANDOM }
+    [ BUCKETS { <bucket_count> | AUTO } ]
+]
+[ <roll_up_definition> ]
+[ PROPERTIES (
+    -- Table property
+    <table_property>
+    -- Additional table properties
+    [ , ... ])
+]
+```
+
+2. **单独创建索引**:先定义索引,然后使用 `BUILD INDEX` 在现有数据上构建。
+
+### 语法
+
+```sql
+CREATE INDEX [IF NOT EXISTS] <index_name>
+             ON <table_name> (<column_name>)
+             USING ANN
+             PROPERTIES ("<key>" = "<value>" [, ...])
+             [COMMENT '<index_comment>']
+
+-- or
+ALTER TABLE <table_name> ADD INDEX <index_name>(<column_name>)
+             USING ANN
+             [PROPERTIES("<key>" = "<value>" [, ...])]
+             [COMMENT '<index_comment>']
+```
+
+### 通用属性
+
+- `index_type`: ANN 索引的类型。支持的值:"ivf" 或 "hnsw"。
+- `metric_type`: 度量类型。支持的值:"l2_distance"、"inner_product"。
+- `dim`: 向量列的维度。
+- `quantizer`: 量化器类型。支持的值:flat、sq4、sq8、pq。不指定时默认为 flat。
+
+### 索引特定属性
+
+#### IVF 索引属性
+
+- `nlist`: 聚类数量(倒排列表)。默认:1024。更高的值改善召回率但增加构建时间和内存使用。
+
+#### HNSW 索引属性
+
+- `max_degree`: 每个节点的连接最大数量。默认:32。影响召回率和查询性能。
+- `ef_construction`: 索引构建期间候选队列的大小。默认:40。更高的值改善图质量但增加构建时间。
+
+### 量化特定属性
+
+对于量化器属性:
+
+- `sq4`: 标量量化 (SQ),使用 4 位整数替代 32 位浮点数来存储向量的每个维度值。
+- `sq8`: 标量量化 (SQ),使用 8 位整数替代 32 位浮点数来存储向量的每个维度值。
+- `pq`: 乘积量化 (PQ),properties中需要额外指定两个参数,`pq_m` 和 `pq_nbits`
+
+#### 乘积量化属性
+
+- `pq_m`: 指定使用的子向量数量(向量维度 dim 必须能被 pq_m 整除)。
+- `pq_nbits`: 用于表示每个子向量的比特数,在 faiss 中 pq_nbits 通常要求不超过 24。
+
+### 示例
+
+#### 创建带有 ANN 索引的表
+
+```sql
+CREATE TABLE tbl_ann (
+    id int NOT NULL,
+    embedding array<float> NOT NULL,
+    INDEX ann_index (embedding) USING ANN PROPERTIES(
+        "index_type"="hnsw",
+        "metric_type"="l2_distance",
+        "dim"="128"
+    )
+) ENGINE=OLAP
+DUPLICATE KEY(id)
+DISTRIBUTED BY HASH(id) BUCKETS 1
+PROPERTIES ("replication_num" = "1");
+```
+
+#### IVF 索引
+
+```sql
+CREATE INDEX ann_ivf_index ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024"
+);
+```
+
+#### HNSW 索引
+
+```sql
+CREATE INDEX ann_hnsw_index ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40"
+);
+```
+
+#### HNSW + SQ
+
+```sql
+CREATE INDEX ann_hnsw_sq ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40",
+    "quantizer"="sq8"
+);
+```
+
+#### HNSW + PQ
+
+```sql
+CREATE INDEX ann_hnsw_pq ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40",
+    "quantizer"="pq",
+    "pq_m"="8",
+    "pq_nbits"="8"
+);
+```
+
+#### IVF + SQ
+
+```sql
+CREATE INDEX ann_ivf_sq ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024",
+    "quantizer"="sq8"
+);
+```
+
+#### IVF + PQ
+
+```sql
+CREATE INDEX ann_ivf_pq ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024",
+    "quantizer"="pq",
+    "pq_m"="8",
+    "pq_nbits"="8"
+);
+```
+
+## 构建 ANN 索引
+
+对于单独创建的索引,使用 `BUILD INDEX` 在现有数据上构建索引。这个操作是异步的。
+
+### 语法
+
+```sql
+BUILD INDEX <index_name> ON <table_name> [PARTITION (<partition_name> [, ...])]
+```
+
+### 监控构建进度
+
+使用 `SHOW BUILD INDEX` 检查索引构建的进度和状态。
+
+```sql
+-- 查看所有 BUILD INDEX 任务的进度 [对于特定数据库]
+SHOW BUILD INDEX [FROM db_name];
+
+-- 查看特定表的 BUILD INDEX 任务进度
+SHOW BUILD INDEX WHERE TableName = "<table_name>";
+```
+
+输出包括 `JobId`、`TableName`、`State`(例如 `FINISHED`、`RUNNING`)和 `Progress` 等列,例如:
+
+```sql
+mysql> show build index where TableName = "sift_1M";
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+| JobId         | TableName | PartitionName | AlterInvertedIndexes             
                                                                                
                                   | CreateTime              | FinishTime       
       | TransactionId | State    | Msg  | Progress |
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+| 1764579876673 | sift_1M   | sift_1M       | [ADD INDEX idx_test_ann 
(`embedding`) USING ANN PROPERTIES("dim" = "128", "index_type" = "ivf", 
"metric_type" = "l2_distance", "nlist" = "1024")],  | 2025-12-01 17:59:54.277 | 
2025-12-01 17:59:56.987 | 82            | FINISHED |      | NULL     |
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+1 row in set (0.00 sec)
+```
+
+### 取消索引构建
+
+要取消正在进行的索引构建:
+
+```sql
+CANCEL BUILD INDEX ON <table_name> [(<job_id> [, ...])]
+```
+
+## 删除 ANN 索引
+
+使用 `DROP INDEX` 删除 ANN 索引。
+
+### 语法
+
+```sql
+DROP INDEX [IF EXISTS] <index_name> ON [<db_name>.]<table_name>
+
+-- or
+ALTER TABLE [<db_name>.]<table_name> DROP INDEX <index_name>
+```
+
+
+## 查看 ANN 索引
+
+使用 `SHOW INDEX` 或 `SHOW CREATE TABLE` 查看索引信息。
+
+### 语法
+
+```sql
+SHOW INDEX[ES] FROM [<db_name>.]<table_name> [FROM <db_name>]
+
+-- or
+SHOW CREATE TABLE [<db_name>.]<table_name>
+```
+
+### 示例输出
+
+```sql
+mysql> SHOW INDEX FROM sift_1M;
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+| Table   | Non_unique | Key_name     | Seq_in_index | Column_name | Collation 
| Cardinality | Sub_part | Packed | Null | Index_type | Comment | Properties    
                                                                         |
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+| sift_1M |            | idx_test_ann |              | embedding   |           
|             |          |        |      | ANN        |         | ("dim" = 
"128", "index_type" = "ivf", "metric_type" = "l2_distance", "nlist" = "1024") |
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+1 row in set (0.01 sec)
+```
+
+输出包括 `Table`、`Key_name`、`Index_type`(ANN 索引显示 `ANN`)和 `Properties`(包含索引配置)等列。
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
index 0aed54c7865..e3b22d8ce42 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
@@ -90,4 +90,14 @@ CREATE INDEX [IF NOT EXISTS] <index_name>
 
     ```sql
     CREATE INDEX index2 ON table1 USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="1024");
-    ```
\ No newline at end of file
+    ```
+
+- 在 table1 上创建 ANN 索引 index3
+
+    ```sql
+    CREATE INDEX index3 ON table1 (`embedding`) USING ANN PROPERTIES(
+      "index_type"="hnsw",
+      "metric_type"="l2_distance",
+      "dim"="128"
+    );
+    ```
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
index 61bf19a5b66..8ceedea1642 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
@@ -7,7 +7,7 @@
 
 ## 描述
 
-该语句用于从一个表中删除指定名称的索引,目前仅支持 bitmap, inverted index 索引。
+该语句用于从一个表中删除指定名称的索引,目前仅支持 bitmap, inverted index, ann index 索引。
 
 ## 语法
 
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
index 53576728bda..93f1bbf17a3 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
@@ -7,7 +7,7 @@
 
 ## 描述
 
- 该语句用于展示一个表中索引的相关信息,目前只支持 bitmap 索引
+ 该语句用于展示一个表中索引的相关信息,目前只支持 bitmap index, inverted index, ann index 索引
 
 ## 语法  
 
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/ai/vector-search/index-management.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/ai/vector-search/index-management.md
new file mode 100644
index 00000000000..6a1cffd4fcc
--- /dev/null
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/ai/vector-search/index-management.md
@@ -0,0 +1,295 @@
+---
+{
+    "title": "ANN 索引管理",
+    "language": "zh-CN"
+}
+---
+
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+
+# ANN 索引管理
+
+## 概述
+
+Apache Doris 中的近似最近邻 (ANN) 索引支持对高维数据进行高效的向量相似性搜索。从 Doris 4.x 开始,通用索引操作语法也支持了 
ANN 索引。本文将介绍 ANN 索引相关操作的具体 SQL 语法,并提供详细的参数说明。
+
+ANN 索引建立在向量列上(`ARRAY<FLOAT> NOT NULL` 类型),支持两种度量类型包括 l2 distance(也叫欧式距离)和inner 
product(内积)。
+
+## 创建 ANN 索引
+
+可以使用带有 `USING ANN` 的 `CREATE INDEX` 语句创建 ANN 索引。有两种主要方法:
+
+1. **在表创建期间定义索引**:索引在数据加载时同步构建。
+
+### 语法
+
+```sql
+CREATE TABLE [IF NOT EXISTS] <table_name> (
+  <columns_definition>
+  INDEX <index_name> (<vector_column) USING ANN PROPERTIES (
+    "<key>" = "<value>" [, ...]
+  )
+)
+[ <key_type> KEY (<key_cols>)
+    [ CLUSTER BY (<cluster_cols>) ]
+]
+[ COMMENT '<table_comment>' ]
+[ <partitions_definition> ]
+[ DISTRIBUTED BY { HASH (<distribute_cols>) | RANDOM }
+    [ BUCKETS { <bucket_count> | AUTO } ]
+]
+[ <roll_up_definition> ]
+[ PROPERTIES (
+    -- Table property
+    <table_property>
+    -- Additional table properties
+    [ , ... ])
+]
+```
+
+2. **单独创建索引**:先定义索引,然后使用 `BUILD INDEX` 在现有数据上构建。
+
+### 语法
+
+```sql
+CREATE INDEX [IF NOT EXISTS] <index_name>
+             ON <table_name> (<column_name>)
+             USING ANN
+             PROPERTIES ("<key>" = "<value>" [, ...])
+             [COMMENT '<index_comment>']
+
+-- or
+ALTER TABLE <table_name> ADD INDEX <index_name>(<column_name>)
+             USING ANN
+             [PROPERTIES("<key>" = "<value>" [, ...])]
+             [COMMENT '<index_comment>']
+```
+
+### 通用属性
+
+- `index_type`: ANN 索引的类型。支持的值:"ivf" 或 "hnsw"。
+- `metric_type`: 度量类型。支持的值:"l2_distance"、"inner_product"。
+- `dim`: 向量列的维度。
+- `quantizer`: 量化器类型。支持的值:flat、sq4、sq8、pq。不指定时默认为 flat。
+
+### 索引特定属性
+
+#### IVF 索引属性
+
+- `nlist`: 聚类数量(倒排列表)。默认:1024。更高的值改善召回率但增加构建时间和内存使用。
+
+#### HNSW 索引属性
+
+- `max_degree`: 每个节点的连接最大数量。默认:32。影响召回率和查询性能。
+- `ef_construction`: 索引构建期间候选队列的大小。默认:40。更高的值改善图质量但增加构建时间。
+
+### 量化特定属性
+
+对于量化器属性:
+
+- `sq4`: 标量量化 (SQ),使用 4 位整数替代 32 位浮点数来存储向量的每个维度值。
+- `sq8`: 标量量化 (SQ),使用 8 位整数替代 32 位浮点数来存储向量的每个维度值。
+- `pq`: 乘积量化 (PQ),properties中需要额外指定两个参数,`pq_m` 和 `pq_nbits`
+
+#### 乘积量化属性
+
+- `pq_m`: 指定使用的子向量数量(向量维度 dim 必须能被 pq_m 整除)。
+- `pq_nbits`: 用于表示每个子向量的比特数,在 faiss 中 pq_nbits 通常要求不超过 24。
+
+### 示例
+
+#### 创建带有 ANN 索引的表
+
+```sql
+CREATE TABLE tbl_ann (
+    id int NOT NULL,
+    embedding array<float> NOT NULL,
+    INDEX ann_index (embedding) USING ANN PROPERTIES(
+        "index_type"="hnsw",
+        "metric_type"="l2_distance",
+        "dim"="128"
+    )
+) ENGINE=OLAP
+DUPLICATE KEY(id)
+DISTRIBUTED BY HASH(id) BUCKETS 1
+PROPERTIES ("replication_num" = "1");
+```
+
+#### IVF 索引
+
+```sql
+CREATE INDEX ann_ivf_index ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024"
+);
+```
+
+#### HNSW 索引
+
+```sql
+CREATE INDEX ann_hnsw_index ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40"
+);
+```
+
+#### HNSW + SQ
+
+```sql
+CREATE INDEX ann_hnsw_sq ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40",
+    "quantizer"="sq8"
+);
+```
+
+#### HNSW + PQ
+
+```sql
+CREATE INDEX ann_hnsw_pq ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40",
+    "quantizer"="pq",
+    "pq_m"="8",
+    "pq_nbits"="8"
+);
+```
+
+#### IVF + SQ
+
+```sql
+CREATE INDEX ann_ivf_sq ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024",
+    "quantizer"="sq8"
+);
+```
+
+#### IVF + PQ
+
+```sql
+CREATE INDEX ann_ivf_pq ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024",
+    "quantizer"="pq",
+    "pq_m"="8",
+    "pq_nbits"="8"
+);
+```
+
+## 构建 ANN 索引
+
+对于单独创建的索引,使用 `BUILD INDEX` 在现有数据上构建索引。这个操作是异步的。
+
+### 语法
+
+```sql
+BUILD INDEX <index_name> ON <table_name> [PARTITION (<partition_name> [, ...])]
+```
+
+### 监控构建进度
+
+使用 `SHOW BUILD INDEX` 检查索引构建的进度和状态。
+
+```sql
+-- 查看所有 BUILD INDEX 任务的进度 [对于特定数据库]
+SHOW BUILD INDEX [FROM db_name];
+
+-- 查看特定表的 BUILD INDEX 任务进度
+SHOW BUILD INDEX WHERE TableName = "<table_name>";
+```
+
+输出包括 `JobId`、`TableName`、`State`(例如 `FINISHED`、`RUNNING`)和 `Progress` 等列,例如:
+
+```sql
+mysql> show build index where TableName = "sift_1M";
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+| JobId         | TableName | PartitionName | AlterInvertedIndexes             
                                                                                
                                   | CreateTime              | FinishTime       
       | TransactionId | State    | Msg  | Progress |
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+| 1764579876673 | sift_1M   | sift_1M       | [ADD INDEX idx_test_ann 
(`embedding`) USING ANN PROPERTIES("dim" = "128", "index_type" = "ivf", 
"metric_type" = "l2_distance", "nlist" = "1024")],  | 2025-12-01 17:59:54.277 | 
2025-12-01 17:59:56.987 | 82            | FINISHED |      | NULL     |
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+1 row in set (0.00 sec)
+```
+
+### 取消索引构建
+
+要取消正在进行的索引构建:
+
+```sql
+CANCEL BUILD INDEX ON <table_name> [(<job_id> [, ...])]
+```
+
+## 删除 ANN 索引
+
+使用 `DROP INDEX` 删除 ANN 索引。
+
+### 语法
+
+```sql
+DROP INDEX [IF EXISTS] <index_name> ON [<db_name>.]<table_name>
+
+-- or
+ALTER TABLE [<db_name>.]<table_name> DROP INDEX <index_name>
+```
+
+
+## 查看 ANN 索引
+
+使用 `SHOW INDEX` 或 `SHOW CREATE TABLE` 查看索引信息。
+
+### 语法
+
+```sql
+SHOW INDEX[ES] FROM [<db_name>.]<table_name> [FROM <db_name>]
+
+-- or
+SHOW CREATE TABLE [<db_name>.]<table_name>
+```
+
+### 示例输出
+
+```sql
+mysql> SHOW INDEX FROM sift_1M;
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+| Table   | Non_unique | Key_name     | Seq_in_index | Column_name | Collation 
| Cardinality | Sub_part | Packed | Null | Index_type | Comment | Properties    
                                                                         |
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+| sift_1M |            | idx_test_ann |              | embedding   |           
|             |          |        |      | ANN        |         | ("dim" = 
"128", "index_type" = "ivf", "metric_type" = "l2_distance", "nlist" = "1024") |
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+1 row in set (0.01 sec)
+```
+
+输出包括 `Table`、`Key_name`、`Index_type`(ANN 索引显示 `ANN`)和 `Properties`(包含索引配置)等列。
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
index 0aed54c7865..975feacc06b 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
@@ -14,7 +14,7 @@
 ```sql
 CREATE INDEX [IF NOT EXISTS] <index_name> 
              ON <table_name> (<column_name> [, ...])
-             [USING {INVERTED | NGRAM_BF}]
+             [USING {INVERTED | NGRAM_BF | ANN}]
              [PROPERTIES ("<key>" = "<value>"[ , ...])]
              [COMMENT '<index_comment>']
 ```
@@ -90,4 +90,14 @@ CREATE INDEX [IF NOT EXISTS] <index_name>
 
     ```sql
     CREATE INDEX index2 ON table1 USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="1024");
-    ```
\ No newline at end of file
+    ```
+
+- 在table1 上创建 ANN 索引 index3
+
+    ```sql
+    CREATE INDEX index3 ON table1 (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128"
+    );
+    ```
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
index 61bf19a5b66..8ceedea1642 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
@@ -7,7 +7,7 @@
 
 ## 描述
 
-该语句用于从一个表中删除指定名称的索引,目前仅支持 bitmap, inverted index 索引。
+该语句用于从一个表中删除指定名称的索引,目前仅支持 bitmap, inverted index, ann index 索引。
 
 ## 语法
 
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
index 53576728bda..93f1bbf17a3 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
@@ -7,7 +7,7 @@
 
 ## 描述
 
- 该语句用于展示一个表中索引的相关信息,目前只支持 bitmap 索引
+ 该语句用于展示一个表中索引的相关信息,目前只支持 bitmap index, inverted index, ann index 索引
 
 ## 语法  
 
diff --git a/sidebars.ts b/sidebars.ts
index 6e45f2ca010..36174c82091 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -411,6 +411,7 @@ const sidebars: SidebarsConfig = {
                                 'ai/vector-search/overview',
                                 'ai/vector-search/hnsw',
                                 'ai/vector-search/ivf',
+                                'ai/vector-search/index-management',
                             ],
                         },
                     ],
diff --git a/versioned_docs/version-4.x/ai/vector-search/index-management.md 
b/versioned_docs/version-4.x/ai/vector-search/index-management.md
new file mode 100644
index 00000000000..8c6bc135d0f
--- /dev/null
+++ b/versioned_docs/version-4.x/ai/vector-search/index-management.md
@@ -0,0 +1,295 @@
+---
+{
+    "title": "ANN Index Management",
+    "language": "en"
+}
+---
+
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+
+# ANN Index Management
+
+## Overview
+
+Approximate Nearest Neighbor (ANN) indexes in Apache Doris enable efficient 
vector similarity search for high-dimensional data. Since from Doris 4.x, the 
universal index operation syntax has also been extended to cover ANN indexes. 
This article will introduce the specific SQL syntax for ANN index-related 
operations and provide detailed parameter explanations.
+
+ANN indexes are built on vector columns (typically `ARRAY<FLOAT> NOT NULL` 
type) and support distance metrics include L2 distance and inner product.
+
+## Creating ANN Indexes
+
+ANN indexes can be created using the `CREATE INDEX` statement with `USING 
ANN`. There are two main approaches:
+
+1. **Define the index during table creation**: The index is built 
synchronously as data is loaded.
+
+### Syntax
+
+```sql
+CREATE TABLE [IF NOT EXISTS] <table_name> (
+  <columns_definition>
+  INDEX <index_name> (<vector_column) USING ANN PROPERTIES (
+    "<key>" = "<value>" [, ...]
+  )
+)
+[ <key_type> KEY (<key_cols>)
+    [ CLUSTER BY (<cluster_cols>) ]
+]
+[ COMMENT '<table_comment>' ]
+[ <partitions_definition> ]
+[ DISTRIBUTED BY { HASH (<distribute_cols>) | RANDOM }
+    [ BUCKETS { <bucket_count> | AUTO } ]
+]
+[ <roll_up_definition> ]
+[ PROPERTIES (
+    -- Table property
+    <table_property>
+    -- Additional table properties
+    [ , ... ])
+]
+```
+
+2. **Create the index separately**: Define the index first, then build it on 
existing data using `BUILD INDEX`.
+
+### Syntax
+
+```sql
+CREATE INDEX [IF NOT EXISTS] <index_name>
+             ON <table_name> (<column_name>)
+             USING ANN
+             PROPERTIES ("<key>" = "<value>" [, ...])
+             [COMMENT '<index_comment>']
+
+-- or
+ALTER TABLE <table_name> ADD INDEX <index_name>(<column_name>)
+             USING ANN
+             [PROPERTIES("<key>" = "<value>" [, ...])]
+             [COMMENT '<index_comment>']
+```
+
+### General Properties
+
+- `index_type`: The type of ANN index. Supported values: `"ivf"` or `"hnsw"`.
+- `metric_type`: The distance metric. Supported values: `"l2_distance"`, 
`"inner_product"`.
+- `dim`: The dimension of the vector column.
+- `quantizer`: The quantizer type. Supported values: `flat`, `sq4`, `sq8`, 
`pq`. Default to `flat` when not specified.
+
+### Index-Specific Properties
+
+#### IVF Index Properties
+
+- `nlist`: Number of clusters (inverted lists). Default: 1024. Higher values 
improve recall but increase build time and memory usage.
+
+#### HNSW Index Properties
+
+- `max_degree`: Maximum number of connections per node. Default: 32. Affects 
recall and query performance.
+- `ef_construction`: Size of the candidate queue during index construction. 
Default: 40. Higher values improve graph quality but increase build time.
+
+### Quantization-Specific Properties
+
+for quantizer property:
+
+- `sq4`: Scalar Quantization (SQ), uses 4-bit integers instead of the typical 
32-bit floating point numbers to store each dimension value of a vector. 
+- `sq8`: Scalar Quantization (SQ), uses 8-bit integers instead of the typical 
32-bit floating point numbers to store each dimension value of a vector. 
+- `pq`: Product Quantization (PQ), two additional parameters, `pq_m` and 
`pq_nbits` are required in the properties.
+
+#### Product Quantization Properties
+
+- `pq_m`: Specifies how many subvectors are used (vector dimension dim must be 
divisible by pq_m).
+- `pq_nbits`: The number of bits used to represent each subvector, in faiss 
pq_nbits is generally required to be no greater than 24.
+
+### Examples
+
+#### Create table with ANN index
+
+```sql
+CREATE TABLE tbl_ann (
+    id int NOT NULL,
+    embedding array<float> NOT NULL,
+    INDEX ann_index (embedding) USING ANN PROPERTIES(
+        "index_type"="hnsw",
+        "metric_type"="l2_distance",
+        "dim"="128"
+    )
+) ENGINE=OLAP
+DUPLICATE KEY(id)
+DISTRIBUTED BY HASH(id) BUCKETS 1
+PROPERTIES ("replication_num" = "1");
+```
+
+#### IVF Index
+
+```sql
+CREATE INDEX ann_ivf_index ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024"
+);
+```
+
+#### HNSW Index
+
+```sql
+CREATE INDEX ann_hnsw_index ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40"
+);
+```
+
+#### HNSW Index with SQ
+
+```sql
+CREATE INDEX ann_hnsw_sq ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40",
+    "quantizer"="sq8"
+);
+```
+
+#### HNSW Index with PQ
+
+```sql
+CREATE INDEX ann_hnsw_pq ON tbl_hnsw (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "max_degree"="32",
+    "ef_construction"="40",
+    "quantizer"="pq",
+    "pq_m"="8",
+    "pq_nbits"="8"
+);
+```
+
+#### IVF Index with SQ
+
+```sql
+CREATE INDEX ann_ivf_sq ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024",
+    "quantizer"="sq8"
+);
+```
+
+#### IVF Index with PQ
+
+```sql
+CREATE INDEX ann_ivf_pq ON tbl_ivf (`embedding`) USING ANN PROPERTIES(
+    "index_type"="ivf",
+    "metric_type"="l2_distance",
+    "dim"="128",
+    "nlist"="1024",
+    "quantizer"="pq",
+    "pq_m"="8",
+    "pq_nbits"="8"
+);
+```
+
+## Building ANN Indexes
+
+For indexes created separately (not during table creation), use `BUILD INDEX` 
to build the index on existing data. This operation is asynchronous.
+
+### Syntax
+
+```sql
+BUILD INDEX <index_name> ON <table_name> [PARTITION (<partition_name> [, ...])]
+```
+
+### Monitoring Build Progress
+
+Use `SHOW BUILD INDEX` to check the status of index build jobs.
+
+```sql
+-- view all the progress of BUILD INDEX tasks [for a specific database]
+SHOW BUILD INDEX [FROM db_name];
+
+-- view the progress of BUILD INDEX tasks for a specific table
+SHOW BUILD INDEX WHERE TableName = "<table_name>";
+```
+
+The output includes columns such as `JobId`, `TableName`, `State` (e.g., 
`FINISHED`, `RUNNING`), and `Progress`, for example:
+
+```sql
+mysql> show build index where TableName = "sift_1M";
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+| JobId         | TableName | PartitionName | AlterInvertedIndexes             
                                                                                
                                   | CreateTime              | FinishTime       
       | TransactionId | State    | Msg  | Progress |
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+| 1764579876673 | sift_1M   | sift_1M       | [ADD INDEX idx_test_ann 
(`embedding`) USING ANN PROPERTIES("dim" = "128", "index_type" = "ivf", 
"metric_type" = "l2_distance", "nlist" = "1024")],  | 2025-12-01 17:59:54.277 | 
2025-12-01 17:59:56.987 | 82            | FINISHED |      | NULL     |
++---------------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------+---------------+----------+------+----------+
+1 row in set (0.00 sec)
+```
+
+### Canceling Index Builds
+
+To cancel an ongoing index build:
+
+```sql
+CANCEL BUILD INDEX ON <table_name> [(<job_id> [, ...])]
+```
+
+## Dropping ANN Indexes
+
+Remove an ANN index using `DROP INDEX`.
+
+### Syntax
+
+```sql
+DROP INDEX [IF EXISTS] <index_name> ON [<db_name>.]<table_name>
+
+-- or
+ALTER TABLE [<db_name>.]<table_name> DROP INDEX <index_name>
+```
+
+
+## Showing ANN Indexes
+
+Display information about indexes on a table using `SHOW INDEX` or `SHOW 
CREATE TABLE`.
+
+### Syntax
+
+```sql
+SHOW INDEX[ES] FROM [<db_name>.]<table_name> [FROM <db_name>]
+
+-- or
+SHOW CREATE TABLE [<db_name>.]<table_name>
+```
+
+### Example Output
+
+```sql
+mysql> SHOW INDEX FROM sift_1M;
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+| Table   | Non_unique | Key_name     | Seq_in_index | Column_name | Collation 
| Cardinality | Sub_part | Packed | Null | Index_type | Comment | Properties    
                                                                         |
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+| sift_1M |            | idx_test_ann |              | embedding   |           
|             |          |        |      | ANN        |         | ("dim" = 
"128", "index_type" = "ivf", "metric_type" = "l2_distance", "nlist" = "1024") |
++---------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----------------------------------------------------------------------------------------+
+1 row in set (0.01 sec)
+```
+
+The output includes columns such as `Table`, `Key_name`, `Index_type` (shows 
`ANN` for ANN indexes), and `Properties` (containing the index configuration).
diff --git 
a/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
 
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
index a3915b9b0e5..6df7dcc2f86 100644
--- 
a/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
+++ 
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/CREATE-INDEX.md
@@ -15,7 +15,7 @@ Create a new index on a table. The table name and index name 
must be specified.
 ```sql
 CREATE INDEX [IF NOT EXISTS] <index_name> 
              ON <table_name> (<column_name> [, ...])
-             [USING {INVERTED | NGRAM_BF}]
+             [USING {INVERTED | NGRAM_BF | ANN}]
              [PROPERTIES ("<key>" = "<value>"[ , ...])]
              [COMMENT '<index_comment>']
 ```
@@ -95,4 +95,16 @@ The user executing this SQL command must have at least the 
following permissions
 
   ```sql
   CREATE INDEX index2 ON table1 USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="1024");
-  ```
\ No newline at end of file
+  ```
+
+
+- Create an ANN index `index3` on `table1` (`embedding`) vector column.
+
+
+  ```sql
+  CREATE INDEX index3 ON table1 (`embedding`) USING ANN PROPERTIES(
+    "index_type"="hnsw",
+    "metric_type"="l2_distance",
+    "dim"="128"
+  );
+    ```
diff --git 
a/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
 
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
index ae328b4239f..104e775f068 100644
--- 
a/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
+++ 
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/DROP-INDEX.md
@@ -7,7 +7,7 @@
 
 ## Description
 
-This statement is used to delete an index with a specified name from a table. 
Currently, only bitmap indexes are supported.
+This statement is used to delete an index with a specified name from a table. 
Currently, only bitmap indexes, inverted indexes and ann indexes are supported.
 
 ## Syntax
 
diff --git 
a/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
 
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
index 10208885d01..434d1f5f1c9 100644
--- 
a/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
+++ 
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/index/SHOW-INDEX.md
@@ -7,7 +7,7 @@
 
 ## Description
 
-This statement is used to display information about indexes in a table. 
Currently, only bitmap indexes are supported.
+This statement is used to display information about indexes in a table. 
Currently, only bitmap indexes, inverted indexes and ann indexes are supported.
 
 ## Syntax
 
diff --git a/versioned_sidebars/version-4.x-sidebars.json 
b/versioned_sidebars/version-4.x-sidebars.json
index a56c8790b59..a4027e47cb8 100644
--- a/versioned_sidebars/version-4.x-sidebars.json
+++ b/versioned_sidebars/version-4.x-sidebars.json
@@ -417,7 +417,8 @@
                             "items": [
                                 "ai/vector-search/overview",
                                 "ai/vector-search/hnsw",
-                                "ai/vector-search/ivf"
+                                "ai/vector-search/ivf",
+                                "ai/vector-search/index-management"
                             ]
                         }
                     ]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to