diff --git a/releases/release-8.4.0.md b/releases/release-8.4.0.md index 02a83dafb25b..caac207bea81 100644 --- a/releases/release-8.4.0.md +++ b/releases/release-8.4.0.md @@ -200,7 +200,7 @@ TiDB 版本:8.4.0 向量搜索是一种基于数据语义的搜索方法,可以提供更相关的搜索结果。作为 AI 和大语言模型 (LLM) 的核心功能之一,向量搜索可用于检索增强生成 (Retrieval-Augmented Generation, RAG)、语义搜索、推荐系统等多种场景。 - 从 v8.4.0 开始,TiDB 支持[向量数据类型](/vector-search/vector-search-data-types.md)和[向量搜索索引](/vector-search/vector-search-index.md),具备强大的向量搜索能力。TiDB 的向量数据类型最多可支持 16383 维度,并支持多种[距离函数](/vector-search-functions-and-operators.md#向量函数),包括 L2 距离(欧式距离)、余弦距离、负内积和 L1 距离(曼哈顿距离)。 + 从 v8.4.0 开始,TiDB 支持[向量数据类型](/vector-search/vector-search-data-types.md)和[向量搜索索引](/vector-search/vector-search-index.md),具备强大的向量搜索能力。TiDB 的向量数据类型最多可支持 16383 维度,并支持多种[距离函数](/vector-search/vector-search-functions-and-operators.md#向量函数),包括 L2 距离(欧式距离)、余弦距离、负内积和 L1 距离(曼哈顿距离)。 在使用时,你只需要创建包含向量数据类型的表,并插入向量数据,即可执行向量搜索查询,也可进行向量数据与传统关系数据的混合查询。 diff --git a/vector-search/vector-search-data-types.md b/vector-search/vector-search-data-types.md index 7d847d25224c..bc7c144d7395 100644 --- a/vector-search/vector-search-data-types.md +++ b/vector-search/vector-search-data-types.md @@ -79,7 +79,7 @@ INSERT INTO vector_table VALUES (2, '[0.3, 0.5]'); -- 插入一个 2 维 ## 比较 -向量数据支持[比较运算符](/vector-search-functions-and-operators.md#扩展的内置函数和运算符),例如 `=`、`!=`、`<`、`>`、`<=` 和 `>=` 等。关于向量数据类型支持的所有函数和操作符,可参阅[向量函数与操作符](/vector-search/vector-search-functions-and-operators.md)。 +向量数据支持[比较运算符](/vector-search/vector-search-functions-and-operators.md#扩展的内置函数和运算符),例如 `=`、`!=`、`<`、`>`、`<=` 和 `>=` 等。关于向量数据类型支持的所有函数和操作符,可参阅[向量函数与操作符](/vector-search/vector-search-functions-and-operators.md)。 比较向量数据类型时,TiDB 会以向量中的各个元素为单位进行依次比较,如: @@ -233,7 +233,7 @@ ERROR 1105 (HY000): vectors have different dimensions: 1 and 3 ## 使用限制 -有关向量类型的限制,请参阅[向量搜索限制](/vector-search/vector-search-limitations.md)以及[向量搜索索引的使用限制](/vector-search-index.md#使用限制)。 +有关向量类型的限制,请参阅[向量搜索限制](/vector-search/vector-search-limitations.md)以及[向量搜索索引的使用限制](/vector-search/vector-search-index.md#使用限制)。 ## MySQL 兼容性 diff --git a/vector-search/vector-search-functions-and-operators.md b/vector-search/vector-search-functions-and-operators.md index c194ba9baf2b..2641f9477d6a 100644 --- a/vector-search/vector-search-functions-and-operators.md +++ b/vector-search/vector-search-functions-and-operators.md @@ -44,7 +44,7 @@ TiDB 扩展了以下内置函数和运算符的功能,使其额外支持了[ | [`+`](https://dev.mysql.com/doc/refman/8.0/en/arithmetic-functions.html#operator_plus) | 向量以元素为单位进行加法运算符 | | [`-`](https://dev.mysql.com/doc/refman/8.0/en/arithmetic-functions.html#operator_minus) | 向量以元素为单位进行减法运算符 | -关于向量运算工作原理的更多信息,请参阅[向量数据类型的运算](/vector-search-data-types.md#运算)。 +关于向量运算工作原理的更多信息,请参阅[向量数据类型的运算](/vector-search/vector-search-data-types.md#运算)。 **聚合函数 (GROUP BY):** @@ -76,7 +76,7 @@ TiDB 扩展了以下内置函数和运算符的功能,使其额外支持了[ | [`!=`, `<>`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_not-equal) | 不等运算符 | | [`NOT IN()`](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_not-in) | 检查值是否不在一组数值之内 | -关于如何比较向量的更多信息,请参阅[向量数据类型的比较](/vector-search-data-types.md#比较)。 +关于如何比较向量的更多信息,请参阅[向量数据类型的比较](/vector-search/vector-search-data-types.md#比较)。 **控制流程函数:** @@ -94,7 +94,7 @@ TiDB 扩展了以下内置函数和运算符的功能,使其额外支持了[ | [`CAST()`](https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#function_cast) | 将值转换为字符串或向量类型 | | [`CONVERT()`](https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#function_convert) | 将值转换为字符串类型 | -关于如何使用 `CAST()` 的更多信息,请参阅[向量数据类型的转换](/vector-search-data-types.md#类型转换-cast)。 +关于如何使用 `CAST()` 的更多信息,请参阅[向量数据类型的转换](/vector-search/vector-search-data-types.md#类型转换-cast)。 ## 使用示例 diff --git a/vector-search/vector-search-get-started-using-python.md b/vector-search/vector-search-get-started-using-python.md index b8f8427c225f..5abd78c62f2a 100644 --- a/vector-search/vector-search-get-started-using-python.md +++ b/vector-search/vector-search-get-started-using-python.md @@ -49,7 +49,7 @@ pip install sqlalchemy pymysql sentence-transformers tidb-vector python-dotenv ``` - `tidb-vector`:用于与 TiDB 向量搜索交互的 Python 客户端。 -- [`sentence-transformers`](https://sbert.net):提供预训练模型的 Python 库,用于从文本生成[向量嵌入](/vector-search-overview.md#向量嵌入)。 +- [`sentence-transformers`](https://sbert.net):提供预训练模型的 Python 库,用于从文本生成[向量嵌入](/vector-search/vector-search-overview.md#向量嵌入)。 ### 第 3 步:配置 TiDB 集群的连接字符串 @@ -117,7 +117,7 @@ TIDB_DATABASE_URL="mysql+pymysql://:@:/" ### 第 4 步:初始化嵌入模型 -[嵌入模型](/vector-search-overview.md#嵌入模型)用于将数据转换为[向量嵌入](/vector-search-overview.md#向量嵌入)。本示例将使用预训练模型 [**msmarco-MiniLM-L12-cos-v5**](https://huggingface.co/sentence-transformers/msmarco-MiniLM-L12-cos-v5) 将文本数据转换为向量嵌入。该模型为一个轻量级模型,由 `sentence-transformers` 库提供,可将文本数据转换为 384 维的向量嵌入。 +[嵌入模型](/vector-search/vector-search-overview.md#嵌入模型)用于将数据转换为[向量嵌入](/vector-search/vector-search-overview.md#向量嵌入)。本示例将使用预训练模型 [**msmarco-MiniLM-L12-cos-v5**](https://huggingface.co/sentence-transformers/msmarco-MiniLM-L12-cos-v5) 将文本数据转换为向量嵌入。该模型为一个轻量级模型,由 `sentence-transformers` 库提供,可将文本数据转换为 384 维的向量嵌入。 将以下代码复制到 `example.py` 文件中,完成模型的设置。这段代码初始化了一个 `SentenceTransformer` 实例,并定义了一个 `text_too_embedding()` 函数用于将文本数据转换为向量数据。 diff --git a/vector-search/vector-search-get-started-using-sql.md b/vector-search/vector-search-get-started-using-sql.md index 0ddea0515e50..7c1feb7a0c8b 100644 --- a/vector-search/vector-search-get-started-using-sql.md +++ b/vector-search/vector-search-get-started-using-sql.md @@ -74,7 +74,7 @@ mysql --comments --host 127.0.0.1 --port 4000 -u root ### 第 2 步:创建向量表 -创建表时,你可以使用 `VECTOR` 数据类型声明指定列为[向量](/vector-search-overview.md#向量嵌入)列。 +创建表时,你可以使用 `VECTOR` 数据类型声明指定列为[向量](/vector-search/vector-search-overview.md#向量嵌入)列。 例如,要创建一个带有三维 `VECTOR` 列的 `embedded_documents` 表,可以使用 MySQL CLI 执行以下 SQL 语句: @@ -97,7 +97,7 @@ Query OK, 0 rows affected (0.27 sec) ### 第 3 步:向表中插入向量 -向 `embedded_documents` 表中插入三行,每一行包含数据和数据的[向量嵌入](/vector-search-overview.md#向量嵌入): +向 `embedded_documents` 表中插入三行,每一行包含数据和数据的[向量嵌入](/vector-search/vector-search-overview.md#向量嵌入): ```sql INSERT INTO embedded_documents @@ -118,7 +118,7 @@ Records: 3 Duplicates: 0 Warnings: 0 > > 为了方便展示,本示例简化了向量的维数,仅使用三维向量。 > -> 在实际应用中,[嵌入模型](/vector-search-overview.md#嵌入模型)通常会生成数百或数千维的向量。 +> 在实际应用中,[嵌入模型](/vector-search/vector-search-overview.md#嵌入模型)通常会生成数百或数千维的向量。 ### 第 4 步:查询向量表 @@ -145,7 +145,7 @@ SELECT * FROM embedded_documents; 与全文搜索类似,在使用向量搜索时,你需要提供搜索词。 -在本例中,搜索词是“一种会游泳的动物”,假设其对应的向量是 `[1,2,3]`。在实际应用中,你需要使用[嵌入模型](/vector-search-overview.md#嵌入模型)将用户的搜索词转换为向量。 +在本例中,搜索词是“一种会游泳的动物”,假设其对应的向量是 `[1,2,3]`。在实际应用中,你需要使用[嵌入模型](/vector-search/vector-search-overview.md#嵌入模型)将用户的搜索词转换为向量。 执行以下 SQL 语句后,TiDB 会计算 `[1,2,3]` 与表中各向量之间的余弦距离 (`vec_cosine_distance`),然后对这些距离进行排序并输出表中最接近搜索向量(余弦距离最小)的前三个文档。 diff --git a/vector-search/vector-search-improve-performance.md b/vector-search/vector-search-improve-performance.md index 1c5f4c5fe0df..58921085d24c 100644 --- a/vector-search/vector-search-improve-performance.md +++ b/vector-search/vector-search-improve-performance.md @@ -17,7 +17,7 @@ summary: 了解优化 TiDB 向量搜索性能的最佳实践。 ## 确保向量索引已完全构建 -当插入大批量向量数据时,可能会有部分数据处于 Delta 层等待后续的持久化,这一部分的数据会在持久化后才会开始构建向量索引。在向量搜索索引完全构建好后,向量搜索性能才能达到最佳水平。要查看索引构建进度,可参阅[查看索引构建进度](/vector-search-index.md#查看索引构建进度)。 +当插入大批量向量数据时,可能会有部分数据处于 Delta 层等待后续的持久化,这一部分的数据会在持久化后才会开始构建向量索引。在向量搜索索引完全构建好后,向量搜索性能才能达到最佳水平。要查看索引构建进度,可参阅[查看索引构建进度](/vector-search/vector-search-index.md#查看索引构建进度)。 ## 减少向量维数或缩短嵌入时间 diff --git a/vector-search/vector-search-limitations.md b/vector-search/vector-search-limitations.md index d081c0069be5..400f1b62ed7e 100644 --- a/vector-search/vector-search-limitations.md +++ b/vector-search/vector-search-limitations.md @@ -23,7 +23,7 @@ summary: 了解 TiDB 向量搜索功能的限制。 ## 向量搜索索引限制 -参考[向量搜索索引 - 使用限制](/vector-search-index.md#使用限制)。 +参考[向量搜索索引 - 使用限制](/vector-search/vector-search-index.md#使用限制)。 ## 工具兼容性