From d6516167acdc25a5e8d006fc68ac72178e056bb9 Mon Sep 17 00:00:00 2001 From: Wenxuan Date: Thu, 28 Nov 2024 15:45:59 +0800 Subject: [PATCH] cloud: Polish availability and limitation of Vector Search (#19494) --- package-lock.json | 25 ++++++++ package.json | 3 + tidb-cloud/vector-search-data-types.md | 10 ++-- .../vector-search-functions-and-operators.md | 40 ++++++------- .../vector-search-get-started-using-python.md | 32 +++++----- .../vector-search-get-started-using-sql.md | 8 +-- tidb-cloud/vector-search-index.md | 58 ++++++++----------- ...vector-search-integrate-with-django-orm.md | 56 +++++++++--------- ...-search-integrate-with-jinaai-embedding.md | 38 ++++++------ .../vector-search-integrate-with-langchain.md | 38 ++++++------ ...vector-search-integrate-with-llamaindex.md | 38 ++++++------ .../vector-search-integrate-with-peewee.md | 56 +++++++++--------- ...vector-search-integrate-with-sqlalchemy.md | 30 +++++----- .../vector-search-integration-overview.md | 6 +- tidb-cloud/vector-search-limitations.md | 19 +++--- tidb-cloud/vector-search-overview.md | 2 +- 16 files changed, 242 insertions(+), 217 deletions(-) diff --git a/package-lock.json b/package-lock.json index fd224f072eb07..2e983b5f14b33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,9 @@ "micromark-extension-mdxjs": "^1.0.0", "octokit": "^3.1.0", "unist-util-visit": "^4.1.0" + }, + "devDependencies": { + "prettier": "3.3.3" } }, "node_modules/@octokit/app": { @@ -1568,6 +1571,22 @@ "is-hexadecimal": "^2.0.0" } }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -3076,6 +3095,12 @@ "is-hexadecimal": "^2.0.0" } }, + "prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true + }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", diff --git a/package.json b/package.json index 7367d12460c5a..92ae96ed20d4f 100644 --- a/package.json +++ b/package.json @@ -17,5 +17,8 @@ "micromark-extension-mdxjs": "^1.0.0", "octokit": "^3.1.0", "unist-util-visit": "^4.1.0" + }, + "devDependencies": { + "prettier": "3.3.3" } } diff --git a/tidb-cloud/vector-search-data-types.md b/tidb-cloud/vector-search-data-types.md index c3d3f03f03365..0c390ab6f03e5 100644 --- a/tidb-cloud/vector-search-data-types.md +++ b/tidb-cloud/vector-search-data-types.md @@ -18,9 +18,9 @@ Using vector data types provides the following advantages over using the [`JSON` - Dimension enforcement: You can specify a dimension to forbid inserting vectors with different dimensions. - Optimized storage format: Vector data types are optimized for handling vector data, offering better space efficiency and performance compared to `JSON` types. -> **Note:** +> **Note** > -> Vector data types are only available for [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Syntax @@ -231,9 +231,9 @@ Currently, direct casting between Vector and other data types (such as `JSON`) i Note that vector data type columns stored in a table cannot be converted to other data types using `ALTER TABLE ... MODIFY COLUMN ...`. -## Restrictions +## Limitations -For restrictions on vector data types, see [Vector search limitations](/tidb-cloud/vector-search-limitations.md) and [Vector index restrictions](/tidb-cloud/vector-search-index.md#restrictions). +See [Vector data type limitations](/tidb-cloud/vector-search-limitations.md#vector-data-type-limitations). ## MySQL compatibility @@ -243,4 +243,4 @@ Vector data types are TiDB specific, and are not supported in MySQL. - [Vector Functions and Operators](/tidb-cloud/vector-search-functions-and-operators.md) - [Vector Search Index](/tidb-cloud/vector-search-index.md) -- [Improve Vector Search Performance](/tidb-cloud/vector-search-improve-performance.md) \ No newline at end of file +- [Improve Vector Search Performance](/tidb-cloud/vector-search-improve-performance.md) diff --git a/tidb-cloud/vector-search-functions-and-operators.md b/tidb-cloud/vector-search-functions-and-operators.md index 4d20fc3e30aab..4081a2f4fcc45 100644 --- a/tidb-cloud/vector-search-functions-and-operators.md +++ b/tidb-cloud/vector-search-functions-and-operators.md @@ -9,7 +9,7 @@ This document lists the functions and operators available for Vector data types. > **Note** > -> Vector data types and these vector functions are only available for [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Vector functions @@ -17,8 +17,8 @@ The following functions are designed specifically for [Vector data types](/tidb- **Vector distance functions:** -| Function Name | Description | -| --------------------------------------------------------- | ---------------------------------------------------------------- | +| Function Name | Description | +| ----------------------------------------------------------- | ---------------------------------------------------------------- | | [`VEC_L2_DISTANCE`](#vec_l2_distance) | Calculates L2 distance (Euclidean distance) between two vectors | | [`VEC_COSINE_DISTANCE`](#vec_cosine_distance) | Calculates the cosine distance between two vectors | | [`VEC_NEGATIVE_INNER_PRODUCT`](#vec_negative_inner_product) | Calculates the negative of the inner product between two vectors | @@ -26,8 +26,8 @@ The following functions are designed specifically for [Vector data types](/tidb- **Other vector functions:** -| Function Name | Description | -| ------------------------------- | --------------------------------------------------- | +| Function Name | Description | +| --------------------------------- | --------------------------------------------------- | | [`VEC_DIMS`](#vec_dims) | Returns the dimension of a vector | | [`VEC_L2_NORM`](#vec_l2_norm) | Calculates the L2 norm (Euclidean norm) of a vector | | [`VEC_FROM_TEXT`](#vec_from_text) | Converts a string into a vector | @@ -48,8 +48,8 @@ For more information about how vector arithmetic works, see [Vector Data Type | **Aggregate (GROUP BY) functions:** -| Name | Description | -| :----------------------- | :----------------------------------------------- | +| Name | Description | +| :------------------------------------------------------------------------------------------------------------ | :----------------------------------------------- | | [`COUNT()`](https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_count) | Return a count of the number of rows returned | | [`COUNT(DISTINCT)`](https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_count-distinct) | Return the count of a number of different values | | [`MAX()`](https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_max) | Return the maximum value | @@ -57,8 +57,8 @@ For more information about how vector arithmetic works, see [Vector Data Type | **Comparison functions and operators:** -| Name | Description | -| ---------------------------------------- | ----------------------------------------------------- | +| Name | Description | +| ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | | [`BETWEEN ... AND ...`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_between) | Check whether a value is within a range of values | | [`COALESCE()`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#function_coalesce) | Return the first non-NULL argument | | [`=`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_equal) | Equal operator | @@ -67,8 +67,8 @@ For more information about how vector arithmetic works, see [Vector Data Type | | [`>=`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_greater-than-or-equal) | Greater than or equal operator | | [`GREATEST()`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#function_greatest) | Return the largest argument | | [`IN()`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_in) | Check whether a value is within a set of values | -| [`IS NULL`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_is-null) | Test whether a value is `NULL` | -| [`ISNULL()`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#function_isnull) | Test whether the argument is `NULL` | +| [`IS NULL`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_is-null) | Test whether a value is `NULL` | +| [`ISNULL()`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#function_isnull) | Test whether the argument is `NULL` | | [`LEAST()`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#function_least) | Return the smallest argument | | [`<`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_less-than) | Less than operator | | [`<=`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_less-than-or-equal) | Less than or equal operator | @@ -80,19 +80,19 @@ For more information about how vectors are compared, see [Vector Data Type | Com **Control flow functions:** -| Name | Description | -| :------------------------------------------------------------------------------------------------ | :--------------------------- | -| [`CASE`](https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#operator_case) | Case operator | -| [`IF()`](https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_if) | If/else construct | -| [`IFNULL()`](https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_ifnull) | Null if/else construct | +| Name | Description | +| :------------------------------------------------------------------------------------------------ | :----------------------------- | +| [`CASE`](https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#operator_case) | Case operator | +| [`IF()`](https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_if) | If/else construct | +| [`IFNULL()`](https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_ifnull) | Null if/else construct | | [`NULLIF()`](https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_nullif) | Return `NULL` if expr1 = expr2 | **Cast functions:** -| Name | Description | -| :------------------------------------------------------------------------------------------ | :----------------------------- | +| Name | Description | +| :------------------------------------------------------------------------------------------ | :--------------------------------- | | [`CAST()`](https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#function_cast) | Cast a value as a string or vector | -| [`CONVERT()`](https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#function_convert) | Cast a value as a string | +| [`CONVERT()`](https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#function_convert) | Cast a value as a string | For more information about how to use `CAST()`, see [Vector Data Type | Cast](/tidb-cloud/vector-search-data-types.md#cast). @@ -222,7 +222,7 @@ Examples: VEC_L2_NORM(vector) ``` -Calculates the [L2 norm](https://en.wikipedia.org/wiki/Norm_(mathematics)) (Euclidean norm) of a vector using the following formula: +Calculates the [L2 norm]() (Euclidean norm) of a vector using the following formula: $NORM(p)=\sqrt {\sum \limits _{i=1}^{n}{p_{i}^{2}}}$ diff --git a/tidb-cloud/vector-search-get-started-using-python.md b/tidb-cloud/vector-search-get-started-using-python.md index 0fcd84d098497..be7f8e0ff236d 100644 --- a/tidb-cloud/vector-search-get-started-using-python.md +++ b/tidb-cloud/vector-search-get-started-using-python.md @@ -11,7 +11,7 @@ Throughout this tutorial, you will develop this AI application using [TiDB Vecto > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Prerequisites @@ -54,28 +54,28 @@ pip install sqlalchemy pymysql sentence-transformers tidb-vector python-dotenv 3. Ensure the configurations in the connection dialog match your operating environment. - - **Connection Type** is set to `Public`. - - **Branch** is set to `main`. - - **Connect With** is set to `SQLAlchemy`. - - **Operating System** matches your environment. + - **Connection Type** is set to `Public`. + - **Branch** is set to `main`. + - **Connect With** is set to `SQLAlchemy`. + - **Operating System** matches your environment. - > **Tip:** - > - > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. + > **Tip:** + > + > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. 4. Click the **PyMySQL** tab and copy the connection string. - > **Tip:** - > - > If you have not set a password yet, click **Generate Password** to generate a random password. + > **Tip:** + > + > If you have not set a password yet, click **Generate Password** to generate a random password. 5. In the root directory of your Python project, create a `.env` file and paste the connection string into it. - The following is an example for macOS: + The following is an example for macOS: - ```dotenv - TIDB_DATABASE_URL="mysql+pymysql://.root:@gateway01..prod.aws.tidbcloud.com:4000/test?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" - ``` + ```dotenv + TIDB_DATABASE_URL="mysql+pymysql://.root:@gateway01..prod.aws.tidbcloud.com:4000/test?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" + ``` ### Step 4. Initialize the embedding model @@ -192,4 +192,4 @@ Therefore, according to the output, the swimming animal is most likely a fish, o ## See also - [Vector Data Types](/tidb-cloud/vector-search-data-types.md) -- [Vector Search Index](/tidb-cloud/vector-search-index.md) \ No newline at end of file +- [Vector Search Index](/tidb-cloud/vector-search-index.md) diff --git a/tidb-cloud/vector-search-get-started-using-sql.md b/tidb-cloud/vector-search-get-started-using-sql.md index ffa2b01b9a1b4..7546b060a5c79 100644 --- a/tidb-cloud/vector-search-get-started-using-sql.md +++ b/tidb-cloud/vector-search-get-started-using-sql.md @@ -16,7 +16,7 @@ This tutorial demonstrates how to get started with TiDB Vector Search just using > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Prerequisites @@ -39,9 +39,9 @@ To complete this tutorial, you need: 5. Copy the connection command and paste it into your terminal. The following is an example for macOS: - ```bash - mysql -u '.root' -h '' -P 4000 -D 'test' --ssl-mode=VERIFY_IDENTITY --ssl-ca=/etc/ssl/cert.pem -p'' - ``` + ```bash + mysql -u '.root' -h '' -P 4000 -D 'test' --ssl-mode=VERIFY_IDENTITY --ssl-ca=/etc/ssl/cert.pem -p'' + ``` ### Step 2. Create a vector table diff --git a/tidb-cloud/vector-search-index.md b/tidb-cloud/vector-search-index.md index 10a3d56e0e597..00e6dce61ec25 100644 --- a/tidb-cloud/vector-search-index.md +++ b/tidb-cloud/vector-search-index.md @@ -11,18 +11,6 @@ In TiDB, you can create and use vector search indexes for such approximate neare Currently, TiDB supports the [HNSW (Hierarchical Navigable Small World)](https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world) vector search index algorithm. -## Restrictions - -- TiFlash nodes must be deployed in your cluster in advance. -- Vector search indexes cannot be used as primary keys or unique indexes. -- Vector search indexes can only be created on a single vector column and cannot be combined with other columns (such as integers or strings) to form composite indexes. -- A distance function must be specified when creating and using vector search indexes. Currently, only cosine distance `VEC_COSINE_DISTANCE()` and L2 distance `VEC_L2_DISTANCE()` functions are supported. -- For the same column, creating multiple vector search indexes using the same distance function is not supported. -- Directly dropping columns with vector search indexes is not supported. You can drop such a column by first dropping the vector search index on that column and then dropping the column itself. -- Modifying the type of a column with a vector index is not supported. -- Setting vector search indexes as [invisible](/sql-statements/sql-statement-alter-index.md) is not supported. -- Building vector search indexes on TiFlash nodes with [encryption at rest](https://docs.pingcap.com/tidb/stable/encryption-at-rest) enabled is not supported. - ## Create the HNSW vector index [HNSW](https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world) is one of the most popular vector indexing algorithms. The HNSW index provides good performance with relatively high accuracy, up to 98% in specific cases. @@ -31,24 +19,24 @@ In TiDB, you can create an HNSW index for a column with a [vector data type](/ti - When creating a table, use the following syntax to specify the vector column for the HNSW index: - ```sql - CREATE TABLE foo ( - id INT PRIMARY KEY, - embedding VECTOR(5), - VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))) - ); - ``` + ```sql + CREATE TABLE foo ( + id INT PRIMARY KEY, + embedding VECTOR(5), + VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))) + ); + ``` - For an existing table that already contains a vector column, use the following syntax to create an HNSW index for the vector column: - ```sql - CREATE VECTOR INDEX idx_embedding ON foo ((VEC_COSINE_DISTANCE(embedding))); - ALTER TABLE foo ADD VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))); + ```sql + CREATE VECTOR INDEX idx_embedding ON foo ((VEC_COSINE_DISTANCE(embedding))); + ALTER TABLE foo ADD VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))); - -- You can also explicitly specify "USING HNSW" to build the vector search index. - CREATE VECTOR INDEX idx_embedding ON foo ((VEC_COSINE_DISTANCE(embedding))) USING HNSW; - ALTER TABLE foo ADD VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))) USING HNSW; - ``` + -- You can also explicitly specify "USING HNSW" to build the vector search index. + CREATE VECTOR INDEX idx_embedding ON foo ((VEC_COSINE_DISTANCE(embedding))) USING HNSW; + ALTER TABLE foo ADD VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))) USING HNSW; + ``` > **Note:** > @@ -64,7 +52,7 @@ When creating an HNSW vector index, you need to specify the distance function fo The vector index can only be created for fixed-dimensional vector columns, such as a column defined as `VECTOR(3)`. It cannot be created for non-fixed-dimensional vector columns (such as a column defined as `VECTOR`) because vector distances can only be calculated between vectors with the same dimension. -For restrictions and limitations of vector search indexes, see [Restrictions](#restrictions). +For other limitations, see [Vector index limitations](/tidb-cloud/vector-search-limitations.md#vector-index-limitations). ## Use the vector index @@ -126,17 +114,17 @@ SELECT * FROM INFORMATION_SCHEMA.TIFLASH_INDEXES; - You can check the `ROWS_STABLE_INDEXED` and `ROWS_STABLE_NOT_INDEXED` columns for the index build progress. When `ROWS_STABLE_NOT_INDEXED` becomes 0, the index build is complete. - As a reference, indexing a 500 MiB vector dataset with 768 dimensions might take up to 20 minutes. The indexer can run in parallel for multiple tables. Currently, adjusting the indexer priority or speed is not supported. + As a reference, indexing a 500 MiB vector dataset with 768 dimensions might take up to 20 minutes. The indexer can run in parallel for multiple tables. Currently, adjusting the indexer priority or speed is not supported. - You can check the `ROWS_DELTA_NOT_INDEXED` column for the number of rows in the Delta layer. Data in the storage layer of TiFlash is stored in two layers: Delta layer and Stable layer. The Delta layer stores recently inserted or updated rows and is periodically merged into the Stable layer according to the write workload. This merge process is called Compaction. - The Delta layer is always not indexed. To achieve optimal performance, you can force the merge of the Delta layer into the Stable layer so that all data can be indexed: + The Delta layer is always not indexed. To achieve optimal performance, you can force the merge of the Delta layer into the Stable layer so that all data can be indexed: - ```sql - ALTER TABLE COMPACT; - ``` + ```sql + ALTER TABLE COMPACT; + ``` - For more information, see [`ALTER TABLE ... COMPACT`](/sql-statements/sql-statement-alter-table-compact.md). + For more information, see [`ALTER TABLE ... COMPACT`](/sql-statements/sql-statement-alter-table-compact.md). In addition, you can monitor the execution progress of the DDL job by executing `ADMIN SHOW DDL JOBS;` and checking the `row count`. However, this method is not fully accurate, because the `row count` value is obtained from the `rows_stable_indexed` field in `TIFLASH_INDEXES`. You can use this approach as a reference for tracking the progress of indexing. @@ -245,6 +233,10 @@ Explanation of some important fields: See [`EXPLAIN`](/sql-statements/sql-statement-explain.md), [`EXPLAIN ANALYZE`](/sql-statements/sql-statement-explain-analyze.md), and [EXPLAIN Walkthrough](/explain-walkthrough.md) for interpreting the output. +## Limitations + +See [Vector index limitations](/tidb-cloud/vector-search-limitations.md#vector-index-limitations). + ## See also - [Improve Vector Search Performance](/tidb-cloud/vector-search-improve-performance.md) diff --git a/tidb-cloud/vector-search-integrate-with-django-orm.md b/tidb-cloud/vector-search-integrate-with-django-orm.md index 5ca099bfe520a..61c9012ca54d8 100644 --- a/tidb-cloud/vector-search-integrate-with-django-orm.md +++ b/tidb-cloud/vector-search-integrate-with-django-orm.md @@ -9,7 +9,7 @@ This tutorial walks you through how to use [Django](https://www.djangoproject.co > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Prerequisites @@ -73,40 +73,40 @@ For more information, refer to [django-tidb repository](https://github.com/pingc 3. Ensure the configurations in the connection dialog match your operating environment. - - **Connection Type** is set to `Public` - - **Branch** is set to `main` - - **Connect With** is set to `General` - - **Operating System** matches your environment. + - **Connection Type** is set to `Public` + - **Branch** is set to `main` + - **Connect With** is set to `General` + - **Operating System** matches your environment. - > **Tip:** - > - > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. + > **Tip:** + > + > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. 4. Copy the connection parameters from the connection dialog. - > **Tip:** - > - > If you have not set a password yet, click **Generate Password** to generate a random password. + > **Tip:** + > + > If you have not set a password yet, click **Generate Password** to generate a random password. 5. In the root directory of your Python project, create a `.env` file and paste the connection parameters to the corresponding environment variables. - - `TIDB_HOST`: The host of the TiDB cluster. - - `TIDB_PORT`: The port of the TiDB cluster. - - `TIDB_USERNAME`: The username to connect to the TiDB cluster. - - `TIDB_PASSWORD`: The password to connect to the TiDB cluster. - - `TIDB_DATABASE`: The database name to connect to. - - `TIDB_CA_PATH`: The path to the root certificate file. - - The following is an example for macOS: - - ```dotenv - TIDB_HOST=gateway01.****.prod.aws.tidbcloud.com - TIDB_PORT=4000 - TIDB_USERNAME=********.root - TIDB_PASSWORD=******** - TIDB_DATABASE=test - TIDB_CA_PATH=/etc/ssl/cert.pem - ``` + - `TIDB_HOST`: The host of the TiDB cluster. + - `TIDB_PORT`: The port of the TiDB cluster. + - `TIDB_USERNAME`: The username to connect to the TiDB cluster. + - `TIDB_PASSWORD`: The password to connect to the TiDB cluster. + - `TIDB_DATABASE`: The database name to connect to. + - `TIDB_CA_PATH`: The path to the root certificate file. + + The following is an example for macOS: + + ```dotenv + TIDB_HOST=gateway01.****.prod.aws.tidbcloud.com + TIDB_PORT=4000 + TIDB_USERNAME=********.root + TIDB_PASSWORD=******** + TIDB_DATABASE=test + TIDB_CA_PATH=/etc/ssl/cert.pem + ``` ### Step 5. Run the demo diff --git a/tidb-cloud/vector-search-integrate-with-jinaai-embedding.md b/tidb-cloud/vector-search-integrate-with-jinaai-embedding.md index 80e915f2d6f4b..71e79db40fd1d 100644 --- a/tidb-cloud/vector-search-integrate-with-jinaai-embedding.md +++ b/tidb-cloud/vector-search-integrate-with-jinaai-embedding.md @@ -9,7 +9,7 @@ This tutorial walks you through how to use [Jina AI](https://jina.ai/) to genera > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Prerequisites @@ -59,33 +59,33 @@ Get the Jina AI API key from the [Jina AI Embeddings API](https://jina.ai/embedd 3. Ensure the configurations in the connection dialog match your operating environment. - - **Connection Type** is set to `Public` - - **Branch** is set to `main` - - **Connect With** is set to `SQLAlchemy` - - **Operating System** matches your environment. + - **Connection Type** is set to `Public` + - **Branch** is set to `main` + - **Connect With** is set to `SQLAlchemy` + - **Operating System** matches your environment. - > **Tip:** - > - > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. + > **Tip:** + > + > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. 4. Switch to the **PyMySQL** tab and click the **Copy** icon to copy the connection string. - > **Tip:** - > - > If you have not set a password yet, click **Create password** to generate a random password. + > **Tip:** + > + > If you have not set a password yet, click **Create password** to generate a random password. 5. Set the Jina AI API key and the TiDB connection string as environment variables in your terminal, or create a `.env` file with the following environment variables: - ```dotenv - JINAAI_API_KEY="****" - TIDB_DATABASE_URL="{tidb_connection_string}" - ``` + ```dotenv + JINAAI_API_KEY="****" + TIDB_DATABASE_URL="{tidb_connection_string}" + ``` - The following is an example connection string for macOS: + The following is an example connection string for macOS: - ```dotenv - TIDB_DATABASE_URL="mysql+pymysql://.root:@gateway01..prod.aws.tidbcloud.com:4000/test?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" - ``` + ```dotenv + TIDB_DATABASE_URL="mysql+pymysql://.root:@gateway01..prod.aws.tidbcloud.com:4000/test?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" + ``` ### Step 5. Run the demo diff --git a/tidb-cloud/vector-search-integrate-with-langchain.md b/tidb-cloud/vector-search-integrate-with-langchain.md index 500f5b7d36c12..04b518a82b31d 100644 --- a/tidb-cloud/vector-search-integrate-with-langchain.md +++ b/tidb-cloud/vector-search-integrate-with-langchain.md @@ -9,7 +9,7 @@ This tutorial demonstrates how to integrate the [vector search](/tidb-cloud/vect > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). > **Tip** > @@ -66,33 +66,33 @@ Take the following steps to obtain the cluster connection string and configure e 3. Ensure the configurations in the connection dialog match your operating environment. - - **Connection Type** is set to `Public`. - - **Branch** is set to `main`. - - **Connect With** is set to `SQLAlchemy`. - - **Operating System** matches your environment. + - **Connection Type** is set to `Public`. + - **Branch** is set to `main`. + - **Connect With** is set to `SQLAlchemy`. + - **Operating System** matches your environment. 4. Click the **PyMySQL** tab and copy the connection string. - > **Tip:** - > - > If you have not set a password yet, click **Generate Password** to generate a random password. + > **Tip:** + > + > If you have not set a password yet, click **Generate Password** to generate a random password. 5. Configure environment variables. - This document uses [OpenAI](https://platform.openai.com/docs/introduction) as the embedding model provider. In this step, you need to provide the connection string obtained from the previous step and your [OpenAI API key](https://platform.openai.com/docs/quickstart/step-2-set-up-your-api-key). + This document uses [OpenAI](https://platform.openai.com/docs/introduction) as the embedding model provider. In this step, you need to provide the connection string obtained from the previous step and your [OpenAI API key](https://platform.openai.com/docs/quickstart/step-2-set-up-your-api-key). - To configure the environment variables, run the following code. You will be prompted to enter your connection string and OpenAI API key: + To configure the environment variables, run the following code. You will be prompted to enter your connection string and OpenAI API key: - ```python - # Use getpass to securely prompt for environment variables in your terminal. - import getpass - import os + ```python + # Use getpass to securely prompt for environment variables in your terminal. + import getpass + import os - # Copy your connection string from the TiDB Cloud console. - # Connection string format: "mysql+pymysql://:@:4000/?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" - tidb_connection_string = getpass.getpass("TiDB Connection String:") - os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:") - ``` + # Copy your connection string from the TiDB Cloud console. + # Connection string format: "mysql+pymysql://:@:4000/?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" + tidb_connection_string = getpass.getpass("TiDB Connection String:") + os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:") + ``` ### Step 4. Load the sample document diff --git a/tidb-cloud/vector-search-integrate-with-llamaindex.md b/tidb-cloud/vector-search-integrate-with-llamaindex.md index 54f16467b9838..117afbbecf9b0 100644 --- a/tidb-cloud/vector-search-integrate-with-llamaindex.md +++ b/tidb-cloud/vector-search-integrate-with-llamaindex.md @@ -9,7 +9,7 @@ This tutorial demonstrates how to integrate the [vector search](/tidb-cloud/vect > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). > **Tip** > @@ -65,33 +65,33 @@ Take the following steps to obtain the cluster connection string and configure e 3. Ensure the configurations in the connection dialog match your operating environment. - - **Connection Type** is set to `Public`. - - **Branch** is set to `main`. - - **Connect With** is set to `SQLAlchemy`. - - **Operating System** matches your environment. + - **Connection Type** is set to `Public`. + - **Branch** is set to `main`. + - **Connect With** is set to `SQLAlchemy`. + - **Operating System** matches your environment. 4. Click the **PyMySQL** tab and copy the connection string. - > **Tip:** - > - > If you have not set a password yet, click **Generate Password** to generate a random password. + > **Tip:** + > + > If you have not set a password yet, click **Generate Password** to generate a random password. 5. Configure environment variables. - This document uses [OpenAI](https://platform.openai.com/docs/introduction) as the embedding model provider. In this step, you need to provide the connection string obtained from from the previous step and your [OpenAI API key](https://platform.openai.com/docs/quickstart/step-2-set-up-your-api-key). + This document uses [OpenAI](https://platform.openai.com/docs/introduction) as the embedding model provider. In this step, you need to provide the connection string obtained from from the previous step and your [OpenAI API key](https://platform.openai.com/docs/quickstart/step-2-set-up-your-api-key). - To configure the environment variables, run the following code. You will be prompted to enter your connection string and OpenAI API key: + To configure the environment variables, run the following code. You will be prompted to enter your connection string and OpenAI API key: - ```python - # Use getpass to securely prompt for environment variables in your terminal. - import getpass - import os + ```python + # Use getpass to securely prompt for environment variables in your terminal. + import getpass + import os - # Copy your connection string from the TiDB Cloud console. - # Connection string format: "mysql+pymysql://:@:4000/?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" - tidb_connection_string = getpass.getpass("TiDB Connection String:") - os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:") - ``` + # Copy your connection string from the TiDB Cloud console. + # Connection string format: "mysql+pymysql://:@:4000/?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" + tidb_connection_string = getpass.getpass("TiDB Connection String:") + os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:") + ``` ### Step 4. Load the sample document diff --git a/tidb-cloud/vector-search-integrate-with-peewee.md b/tidb-cloud/vector-search-integrate-with-peewee.md index 0e6dd89d8332a..0a72a34135ef8 100644 --- a/tidb-cloud/vector-search-integrate-with-peewee.md +++ b/tidb-cloud/vector-search-integrate-with-peewee.md @@ -9,7 +9,7 @@ This tutorial walks you through how to use [peewee](https://docs.peewee-orm.com/ > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Prerequisites @@ -63,40 +63,40 @@ pip install peewee pymysql python-dotenv tidb-vector 3. Ensure the configurations in the connection dialog match your operating environment. - - **Connection Type** is set to `Public`. - - **Branch** is set to `main`. - - **Connect With** is set to `General`. - - **Operating System** matches your environment. + - **Connection Type** is set to `Public`. + - **Branch** is set to `main`. + - **Connect With** is set to `General`. + - **Operating System** matches your environment. - > **Tip:** - > - > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. + > **Tip:** + > + > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. 4. Copy the connection parameters from the connection dialog. - > **Tip:** - > - > If you have not set a password yet, click **Generate Password** to generate a random password. + > **Tip:** + > + > If you have not set a password yet, click **Generate Password** to generate a random password. 5. In the root directory of your Python project, create a `.env` file and paste the connection parameters to the corresponding environment variables. - - `TIDB_HOST`: The host of the TiDB cluster. - - `TIDB_PORT`: The port of the TiDB cluster. - - `TIDB_USERNAME`: The username to connect to the TiDB cluster. - - `TIDB_PASSWORD`: The password to connect to the TiDB cluster. - - `TIDB_DATABASE`: The database name to connect to. - - `TIDB_CA_PATH`: The path to the root certificate file. - - The following is an example for macOS: - - ```dotenv - TIDB_HOST=gateway01.****.prod.aws.tidbcloud.com - TIDB_PORT=4000 - TIDB_USERNAME=********.root - TIDB_PASSWORD=******** - TIDB_DATABASE=test - TIDB_CA_PATH=/etc/ssl/cert.pem - ``` + - `TIDB_HOST`: The host of the TiDB cluster. + - `TIDB_PORT`: The port of the TiDB cluster. + - `TIDB_USERNAME`: The username to connect to the TiDB cluster. + - `TIDB_PASSWORD`: The password to connect to the TiDB cluster. + - `TIDB_DATABASE`: The database name to connect to. + - `TIDB_CA_PATH`: The path to the root certificate file. + + The following is an example for macOS: + + ```dotenv + TIDB_HOST=gateway01.****.prod.aws.tidbcloud.com + TIDB_PORT=4000 + TIDB_USERNAME=********.root + TIDB_PASSWORD=******** + TIDB_DATABASE=test + TIDB_CA_PATH=/etc/ssl/cert.pem + ``` ### Step 5. Run the demo diff --git a/tidb-cloud/vector-search-integrate-with-sqlalchemy.md b/tidb-cloud/vector-search-integrate-with-sqlalchemy.md index 4fe443a471ced..f9fea8e3f11cd 100644 --- a/tidb-cloud/vector-search-integrate-with-sqlalchemy.md +++ b/tidb-cloud/vector-search-integrate-with-sqlalchemy.md @@ -9,7 +9,7 @@ This tutorial walks you through how to use [SQLAlchemy](https://www.sqlalchemy.o > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Prerequisites @@ -63,28 +63,28 @@ pip install pymysql python-dotenv sqlalchemy tidb-vector 3. Ensure the configurations in the connection dialog match your environment. - - **Connection Type** is set to `Public`. - - **Branch** is set to `main`. - - **Connect With** is set to `SQLAlchemy`. - - **Operating System** matches your environment. + - **Connection Type** is set to `Public`. + - **Branch** is set to `main`. + - **Connect With** is set to `SQLAlchemy`. + - **Operating System** matches your environment. - > **Tip:** - > - > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. + > **Tip:** + > + > If your program is running in Windows Subsystem for Linux (WSL), switch to the corresponding Linux distribution. 4. Click the **PyMySQL** tab and copy the connection string. - > **Tip:** - > - > If you have not set a password yet, click **Generate Password** to generate a random password. + > **Tip:** + > + > If you have not set a password yet, click **Generate Password** to generate a random password. 5. In the root directory of your Python project, create a `.env` file and paste the connection string into it. - The following is an example for macOS: + The following is an example for macOS: - ```dotenv - TIDB_DATABASE_URL="mysql+pymysql://.root:@gateway01..prod.aws.tidbcloud.com:4000/test?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" - ``` + ```dotenv + TIDB_DATABASE_URL="mysql+pymysql://.root:@gateway01..prod.aws.tidbcloud.com:4000/test?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true" + ``` ### Step 5. Run the demo diff --git a/tidb-cloud/vector-search-integration-overview.md b/tidb-cloud/vector-search-integration-overview.md index 9d7b7bc247492..2e3be236cf743 100644 --- a/tidb-cloud/vector-search-integration-overview.md +++ b/tidb-cloud/vector-search-integration-overview.md @@ -9,14 +9,14 @@ This document provides an overview of TiDB Vector Search integration, including > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## AI frameworks TiDB provides official support for the following AI frameworks, enabling you to easily integrate AI applications developed based on these frameworks with TiDB Vector Search. | AI frameworks | Tutorial | -|---------------|---------------------------------------------------------------------------------------------------| +| ------------- | ------------------------------------------------------------------------------------------------- | | Langchain | [Integrate Vector Search with LangChain](/tidb-cloud/vector-search-integrate-with-langchain.md) | | LlamaIndex | [Integrate Vector Search with LlamaIndex](/tidb-cloud/vector-search-integrate-with-llamaindex.md) | @@ -31,7 +31,7 @@ You can either use self-deployed open-source embedding models or third-party emb The following table lists some mainstream embedding service providers and the corresponding integration tutorials. | Embedding service providers | Tutorial | -|-----------------------------|---------------------------------------------------------------------------------------------------------------------| +| --------------------------- | ------------------------------------------------------------------------------------------------------------------- | | Jina AI | [Integrate Vector Search with Jina AI Embeddings API](/tidb-cloud/vector-search-integrate-with-jinaai-embedding.md) | ## Object Relational Mapping (ORM) libraries diff --git a/tidb-cloud/vector-search-limitations.md b/tidb-cloud/vector-search-limitations.md index c533bcc673b37..a3b72c488cd77 100644 --- a/tidb-cloud/vector-search-limitations.md +++ b/tidb-cloud/vector-search-limitations.md @@ -9,21 +9,26 @@ This document describes the known limitations of TiDB Vector Search. > **Note** > -> TiDB Vector Search is only available for [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) clusters. It is not available for TiDB Cloud Dedicated. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Vector data type limitations - Each [vector](/tidb-cloud/vector-search-data-types.md) supports up to 16383 dimensions. - Vector data types cannot store `NaN`, `Infinity`, or `-Infinity` values. - Vector data types cannot store double-precision floating-point numbers. If you insert or store double-precision floating-point numbers in vector columns, TiDB converts them to single-precision floating-point numbers. -- Vector columns cannot be used as primary keys or as part of a primary key. -- Vector columns cannot be used as unique indexes or as part of a unique index. -- Vector columns cannot be used as partition keys or as part of a partition key. -- Currently, TiDB does not support modifying a vector column to other data types (such as `JSON` and `VARCHAR`). +- Vector columns cannot be used in primary keys, unique indexes, or partition keys. To accelerate the vector search performance, use [Vector Search Index](/tidb-cloud/vector-search-index.md). +- A table can have multiple vector columns. However, there is [a limit on the total number of columns in a table](/tidb-limitations.md#limitations-on-a-single-table). +- Currently, TiDB does not support dropping a vector column with a vector index. To drop such a column, drop the vector index first, then drop the vector column. +- Currently, TiDB does not support modifying a vector column to other data types such as `JSON` and `VARCHAR`. ## Vector index limitations -See [Vector search restrictions](/tidb-cloud/vector-search-index.md#restrictions). +- Vector index is used for vector search. It cannot accelerate other queries like range queries or equality queries. Thus, it is not possible to create a vector index on a non-vector column, or on multiple vector columns. +- A table can have multiple vector indexes. However, there is [a limit on the total number of indexes in a table](/tidb-limitations.md#limitations-on-a-single-table). +- Creating multiple vector indexes on the same column is allowed only if they use different distance functions. +- Currently, only `VEC_COSINE_DISTANCE()` and `VEC_L2_DISTANCE()` are supported as the distance functions for vector indexes. +- Currently, TiDB does not support dropping a vector column with a vector index. To drop such a column, drop the vector index first, then drop the vector column. +- Currently, TiDB does not support setting vector index as [invisible](/sql-statements/sql-statement-alter-index.md). ## Compatibility with TiDB tools @@ -34,4 +39,4 @@ See [Vector search restrictions](/tidb-cloud/vector-search-index.md#restrictions We value your feedback and are always here to help: - [Join our Discord](https://discord.gg/zcqexutz2R) -- [Visit our Support Portal](https://tidb.support.pingcap.com/) \ No newline at end of file +- [Visit our Support Portal](https://tidb.support.pingcap.com/) diff --git a/tidb-cloud/vector-search-overview.md b/tidb-cloud/vector-search-overview.md index 1c207a84d9951..612022eae176a 100644 --- a/tidb-cloud/vector-search-overview.md +++ b/tidb-cloud/vector-search-overview.md @@ -9,7 +9,7 @@ TiDB Vector Search (beta) provides an advanced search solution for performing se > **Note** > -> TiDB Vector Search is currently in beta and is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) clusters. +> TiDB Vector Search is only available for TiDB Self-Managed (TiDB >= v8.4) and [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless). It is not available for [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated). ## Concepts