Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

*: add a vector-search directory and update links #19469

Merged
merged 4 commits into from
Jan 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,23 +78,23 @@
- [Stale Read](/develop/dev-guide-use-stale-read.md)
- [HTAP 查询](/develop/dev-guide-hybrid-oltp-and-olap-queries.md)
- 向量搜索
- [概述](/vector-search-overview.md)
- [概述](/vector-search/vector-search-overview.md)
- 快速入门
- [使用 SQL 开始向量搜索](/vector-search-get-started-using-sql.md)
- [使用 Python 开始向量搜索](/vector-search-get-started-using-python.md)
- [使用 SQL 开始向量搜索](/vector-search/vector-search-get-started-using-sql.md)
- [使用 Python 开始向量搜索](/vector-search/vector-search-get-started-using-python.md)
- 集成
- [集成概览](/vector-search-integration-overview.md)
- [集成概览](/vector-search/vector-search-integration-overview.md)
- AI 框架
- [LlamaIndex](/vector-search-integrate-with-llamaindex.md)
- [Langchain](/vector-search-integrate-with-langchain.md)
- [LlamaIndex](/vector-search/vector-search-integrate-with-llamaindex.md)
- [Langchain](/vector-search/vector-search-integrate-with-langchain.md)
- 嵌入模型/服务
- [Jina AI](/vector-search-integrate-with-jinaai-embedding.md)
- [Jina AI](/vector-search/vector-search-integrate-with-jinaai-embedding.md)
- ORM 库
- [SQLAlchemy](/vector-search-integrate-with-sqlalchemy.md)
- [peewee](/vector-search-integrate-with-peewee.md)
- [Django](/vector-search-integrate-with-django-orm.md)
- [优化搜索性能](/vector-search-improve-performance.md)
- [使用限制](/vector-search-limitations.md)
- [SQLAlchemy](/vector-search/vector-search-integrate-with-sqlalchemy.md)
- [peewee](/vector-search/vector-search-integrate-with-peewee.md)
- [Django](/vector-search/vector-search-integrate-with-django-orm.md)
- [优化搜索性能](/vector-search/vector-search-improve-performance.md)
- [使用限制](/vector-search/vector-search-limitations.md)
- 事务
- [概览](/develop/dev-guide-transaction-overview.md)
- [乐观事务和悲观事务](/develop/dev-guide-optimistic-and-pessimistic-transaction.md)
Expand Down Expand Up @@ -895,7 +895,7 @@
- [日期和时间类型](/data-type-date-and-time.md)
- [字符串类型](/data-type-string.md)
- [JSON 类型](/data-type-json.md)
- [向量数据类型](/vector-search-data-types.md)
- [向量数据类型](/vector-search/vector-search-data-types.md)
- 函数与操作符
- [函数与操作符概述](/functions-and-operators/functions-and-operators-overview.md)
- [表达式求值的类型转换](/functions-and-operators/type-conversion-in-expression-evaluation.md)
Expand All @@ -909,7 +909,7 @@
- [加密和压缩函数](/functions-and-operators/encryption-and-compression-functions.md)
- [锁函数](/functions-and-operators/locking-functions.md)
- [信息函数](/functions-and-operators/information-functions.md)
- [向量函数和操作符](/vector-search-functions-and-operators.md)
- [向量函数和操作符](/vector-search/vector-search-functions-and-operators.md)
- JSON 函数
- [概览](/functions-and-operators/json-functions.md)
- [创建 JSON 的函数](/functions-and-operators/json-functions/json-functions-create.md)
Expand All @@ -930,7 +930,7 @@
- [TiDB 特有的函数](/functions-and-operators/tidb-functions.md)
- [Oracle 与 TiDB 函数和语法差异对照](/oracle-functions-to-tidb.md)
- [聚簇索引](/clustered-indexes.md)
- [向量索引](/vector-search-index.md)
- [向量索引](/vector-search/vector-search-index.md)
- [约束](/constraints.md)
- [生成列](/generated-columns.md)
- [SQL 模式](/sql-mode.md)
Expand Down
8 changes: 4 additions & 4 deletions basic-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ aliases: ['/docs-cn/dev/basic-features/','/docs-cn/dev/experimental-features-4.0
| [日期和时间类型](/data-type-date-and-time.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [字符串类型](/data-type-string.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [JSON 类型](/data-type-json.md) | Y | Y | Y | Y | Y | E | E | E | E | E |
| [向量数据类型](/vector-search-data-types.md) | E | N | N | N | N | N | N | N | N | N |
| [向量数据类型](/vector-search/vector-search-data-types.md) | E | N | N | N | N | N | N | N | N | N |
| [控制流程函数](/functions-and-operators/control-flow-functions.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [字符串函数](/functions-and-operators/string-functions.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [数值函数与操作符](/functions-and-operators/numeric-functions-and-operators.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [日期和时间函数](/functions-and-operators/date-and-time-functions.md)| Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [位函数和操作符](/functions-and-operators/bit-functions-and-operators.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [Cast 函数和操作符](/functions-and-operators/cast-functions-and-operators.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [加密和压缩函数](/functions-and-operators/encryption-and-compression-functions.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [向量函数和操作符](/vector-search-functions-and-operators.md) | E | N | N | N | N | N | N | N | N | N |
| [向量函数和操作符](/vector-search/vector-search-functions-and-operators.md) | E | N | N | N | N | N | N | N | N | N |
| [信息函数](/functions-and-operators/information-functions.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [JSON 函数](/functions-and-operators/json-functions.md) | Y | Y | Y | Y | Y | E | E | E | E | E |
| [聚合函数](/functions-and-operators/aggregate-group-by-functions.md) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
Expand Down Expand Up @@ -65,7 +65,7 @@ aliases: ['/docs-cn/dev/basic-features/','/docs-cn/dev/experimental-features-4.0
| [外键约束](/foreign-key.md) | Y | E | E | E | N | N | N | N | N | N |
| [TiFlash 延迟物化](/tiflash/tiflash-late-materialization.md) | Y | Y | Y | Y | N | N | N | N | N | N |
| [全局索引 (Global Index)](/partitioned-table.md#全局索引) | Y | N | N | N | N | N | N | N | N | N |
| [向量索引](/vector-search-index.md) | E | N | N | N | N | N | N | N | N | N |
| [向量索引](/vector-search/vector-search-index.md) | E | N | N | N | N | N | N | N | N | N |

## SQL 语句

Expand Down Expand Up @@ -96,7 +96,7 @@ aliases: ['/docs-cn/dev/basic-features/','/docs-cn/dev/experimental-features-4.0

| 高级 SQL 功能 | 8.5 | 8.1 | 7.5 | 7.1 | 6.5 | 6.1 | 5.4 | 5.3 | 5.2 | 5.1 |
|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| [向量搜索](/vector-search-overview.md) | E | N | N | N | N | N | N | N | N | N |
| [向量搜索](/vector-search/vector-search-overview.md) | E | N | N | N | N | N | N | N | N | N |
| [Prepare 语句执行计划缓存](/sql-prepared-plan-cache.md) | Y | Y | Y | Y | Y | Y | Y | Y | E | E |
| [非 Prepare 语句执行计划缓存](/sql-non-prepared-plan-cache.md) | Y | Y | Y | E | N | N | N | N | N | N |
| [实例级执行计划缓存](/system-variables.md#tidb_enable_instance_plan_cache-从-v840-版本开始引入) | E | N | N | N | N | N | N | N | N | N |
Expand Down
2 changes: 1 addition & 1 deletion br/backup-and-restore-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ TiDB 支持将数据备份到 Amazon S3、Google Cloud Storage (GCS)、Azure Blo
| 全局临时表 | | 确保使用 BR v5.3.0 及以上版本进行备份和恢复,否则会导致全局临时表的表定义错误。 |
| TiDB Lightning 物理导入模式| |上游数据库使用 TiDB Lightning 物理导入模式导入的数据,无法作为数据日志备份下来。推荐在数据导入后执行一次全量备份,细节参考[上游数据库使用 TiDB Lightning 物理导入模式导入数据的恢复](/faq/backup-and-restore-faq.md#上游数据库使用-tidb-lightning-物理导入模式导入数据时为什么无法使用日志备份功能)|
| TiCDC | | BR v8.2.0 及以上版本:如果在恢复的目标集群有 [CheckpointTS](/ticdc/ticdc-architecture.md#checkpointts) 早于 BackupTS 的 Changefeed,BR 会拒绝执行恢复。BR v8.2.0 之前的版本:如果在恢复的目标集群有任何活跃的 TiCDC Changefeed,BR 会拒绝执行恢复。 |
| 向量搜索 | | 确保使用 BR v8.4.0 及以上版本进行备份与恢复。不支持将带有[向量数据类型](/vector-search-data-types.md)的表恢复至 v8.4.0 之前的 TiDB 集群。 |
| 向量搜索 | | 确保使用 BR v8.4.0 及以上版本进行备份与恢复。不支持将带有[向量数据类型](/vector-search/vector-search-data-types.md)的表恢复至 v8.4.0 之前的 TiDB 集群。 |

### 版本间兼容性

Expand Down
6 changes: 3 additions & 3 deletions releases/release-8.4.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,13 +200,13 @@ TiDB 版本:8.4.0

向量搜索是一种基于数据语义的搜索方法,可以提供更相关的搜索结果。作为 AI 和大语言模型 (LLM) 的核心功能之一,向量搜索可用于检索增强生成 (Retrieval-Augmented Generation, RAG)、语义搜索、推荐系统等多种场景。

从 v8.4.0 开始,TiDB 支持[向量数据类型](/vector-search-data-types.md)和[向量搜索索引](/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 距离(曼哈顿距离)。

在使用时,你只需要创建包含向量数据类型的表,并插入向量数据,即可执行向量搜索查询,也可进行向量数据与传统关系数据的混合查询。

此外,你可以创建并利用[向量搜索索引](/vector-search-index.md)来提升向量搜索的性能。需要注意的是,TiDB 的向量搜索索引依赖于 TiFlash。在使用向量搜索索引之前,需要确保 TiDB 集群中已部署 TiFlash 节点。
此外,你可以创建并利用[向量搜索索引](/vector-search/vector-search-index.md)来提升向量搜索的性能。需要注意的是,TiDB 的向量搜索索引依赖于 TiFlash。在使用向量搜索索引之前,需要确保 TiDB 集群中已部署 TiFlash 节点。

更多信息,请参考[用户文档](/vector-search-overview.md)。
更多信息,请参考[用户文档](/vector-search/vector-search-overview.md)。

### 数据库管理

Expand Down
2 changes: 1 addition & 1 deletion ticdc/ticdc-compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ TiCDC 从 v5.3.0 开始支持[全局临时表](/temporary-tables.md#全局临时

### 向量数据类型兼容性说明

从 v8.4.0 开始,TiCDC 支持同步包含[向量数据类型](/vector-search-data-types.md)的表到下游(实验特性)。
从 v8.4.0 开始,TiCDC 支持同步包含[向量数据类型](/vector-search/vector-search-data-types.md)的表到下游(实验特性)。

当下游为 Kafka 或者存储服务(如:Amazon S3、GCS、Azure Blob Storage 和 NFS)时,TiCDC 会将向量数据类型转为字符串类型进行写入。

Expand Down
2 changes: 1 addition & 1 deletion tiflash-upgrade-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ TiFlash 在 v6.2.0 将数据格式升级到 V3 版本,因此,从 v5.x 或 v6

## 从 v7.x 升级至 v8.4 或以上版本

从 v8.4 开始,为了支持[向量搜索功能](/vector-search-index.md),TiFlash 底层存储格式发生改动。因此,升级 TiFlash 到 v8.4 或以上版本后,不支持原地降级到之前的版本。
从 v8.4 开始,为了支持[向量搜索功能](/vector-search/vector-search-index.md),TiFlash 底层存储格式发生改动。因此,升级 TiFlash 到 v8.4 或以上版本后,不支持原地降级到之前的版本。

**测试环境及特殊回退需求下的对策**

Expand Down
2 changes: 1 addition & 1 deletion tiflash/tiflash-supported-pushdown-calculations.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ TiFlash 支持部分算子的下推,支持的算子如下:
| [正则函数和算子](/functions-and-operators/string-functions.md) | `REGEXP`, `REGEXP_LIKE()`, `REGEXP_INSTR()`, `REGEXP_SUBSTR()`, `REGEXP_REPLACE()`, `RLIKE` |
| [日期函数](/functions-and-operators/date-and-time-functions.md) | `DATE_FORMAT()`, `TIMESTAMPDIFF()`, `FROM_UNIXTIME()`, `UNIX_TIMESTAMP(int)`, `UNIX_TIMESTAMP(decimal)`, `STR_TO_DATE(date)`, `STR_TO_DATE(datetime)`, `DATEDIFF()`, `YEAR()`, `MONTH()`, `DAY()`, `EXTRACT(datetime)`, `DATE()`, `HOUR()`, `MICROSECOND()`, `MINUTE()`, `SECOND()`, `SYSDATE()`, `DATE_ADD/ADDDATE(datetime, int)`, `DATE_ADD/ADDDATE(string, int/real)`, `DATE_SUB/SUBDATE(datetime, int)`, `DATE_SUB/SUBDATE(string, int/real)`, `QUARTER()`, `DAYNAME()`, `DAYOFMONTH()`, `DAYOFWEEK()`, `DAYOFYEAR()`, `LAST_DAY()`, `MONTHNAME()`, `TO_SECONDS()`, `TO_DAYS()`, `FROM_DAYS()`, `WEEKOFYEAR()` |
| [JSON 函数](/functions-and-operators/json-functions.md) | `JSON_LENGTH()`, `->`, `->>`, `JSON_EXTRACT()`, `JSON_ARRAY()`, `JSON_DEPTH()`, `JSON_VALID()`, `JSON_KEYS()`, `JSON_CONTAINS_PATH()`, `JSON_UNQUOTE()` |
| [向量函数](/vector-search-functions-and-operators.md) | `VEC_L2_DISTANCE`, `VEC_COSINE_DISTANCE`, `VEC_NEGATIVE_INNER_PRODUCT`, `VEC_L1_DISTANCE`, `VEC_DIMS`, `VEC_L2_NORM`, `VEC_AS_TEXT` |
| [向量函数](/vector-search/vector-search-functions-and-operators.md) | `VEC_L2_DISTANCE`, `VEC_COSINE_DISTANCE`, `VEC_NEGATIVE_INNER_PRODUCT`, `VEC_L1_DISTANCE`, `VEC_DIMS`, `VEC_L2_NORM`, `VEC_AS_TEXT` |
| [转换函数](/functions-and-operators/cast-functions-and-operators.md) | `CAST(int AS DOUBLE), CAST(int AS DECIMAL)`, `CAST(int AS STRING)`, `CAST(int AS TIME)`, `CAST(double AS INT)`, `CAST(double AS DECIMAL)`, `CAST(double AS STRING)`, `CAST(double AS TIME)`, `CAST(string AS INT)`, `CAST(string AS DOUBLE), CAST(string AS DECIMAL)`, `CAST(string AS TIME)`, `CAST(decimal AS INT)`, `CAST(decimal AS STRING)`, `CAST(decimal AS TIME)`, `CAST(decimal AS DOUBLE)`, `CAST(time AS INT)`, `CAST(time AS DECIMAL)`, `CAST(time AS STRING)`, `CAST(time AS REAL)`, `CAST(json AS JSON)`, `CAST(json AS STRING)`, `CAST(int AS JSON)`, `CAST(real AS JSON)`, `CAST(decimal AS JSON)`, `CAST(string AS JSON)`, `CAST(time AS JSON)`, `CAST(duration AS JSON)` |
| [聚合函数](/functions-and-operators/aggregate-group-by-functions.md) | `MIN()`, `MAX()`, `SUM()`, `COUNT()`, `AVG()`, `APPROX_COUNT_DISTINCT()`, `GROUP_CONCAT()` |
| [其他函数](/functions-and-operators/miscellaneous-functions.md) | `INET_NTOA()`, `INET_ATON()`, `INET6_NTOA()`, `INET6_ATON()` |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ summary: 本文介绍 TiDB 的向量数据类型。

与使用 [`JSON`](/data-type-json.md) 类型相比,使用向量类型具有以下优势:

- 支持向量索引。可以通过构建[向量搜索索引](/vector-search-index.md)加速查询。
- 支持向量索引。可以通过构建[向量搜索索引](/vector-search/vector-search-index.md)加速查询。
- 可指定维度。指定一个固定维度后,不符合维度的数据将被阻止写入到表中。
- 存储格式更优。向量数据类型针对向量数据进行了特别优化,在空间利用和性能效率上都优于 `JSON` 类型。

Expand Down Expand Up @@ -57,9 +57,9 @@ ERROR 1105 (HY000): Invalid vector text: [5, ]
ERROR 1105 (HY000): vector has 2 dimensions, does not fit VECTOR(3)
```

关于向量数据类型支持的所有函数和操作符,可参阅[向量函数与操作符](/vector-search-functions-and-operators.md)。
关于向量数据类型支持的所有函数和操作符,可参阅[向量函数与操作符](/vector-search/vector-search-functions-and-operators.md)。

关于向量搜索索引的更多信息,可参阅[向量搜索索引](/vector-search-index.md)。
关于向量搜索索引的更多信息,可参阅[向量搜索索引](/vector-search/vector-search-index.md)。

## 混合存储不同维度的向量

Expand All @@ -75,11 +75,11 @@ INSERT INTO vector_table VALUES (1, '[0.3, 0.5, -0.1]'); -- 插入一个 3 维
INSERT INTO vector_table VALUES (2, '[0.3, 0.5]'); -- 插入一个 2 维向量
```

需要注意的是,存储了不同维度向量的列不支持构建[向量搜索索引](/vector-search-index.md),因为只有维度相同的向量之间才能计算向量距离。
需要注意的是,存储了不同维度向量的列不支持构建[向量搜索索引](/vector-search/vector-search-index.md),因为只有维度相同的向量之间才能计算向量距离。

## 比较

向量数据支持[比较运算符](/vector-search-functions-and-operators.md#扩展的内置函数和运算符),例如 `=`、`!=`、`<`、`>`、`<=` 和 `>=` 等。关于向量数据类型支持的所有函数和操作符,可参阅[向量函数与操作符](/vector-search-functions-and-operators.md)。
向量数据支持[比较运算符](/vector-search/vector-search-functions-and-operators.md#扩展的内置函数和运算符),例如 `=`、`!=`、`<`、`>`、`<=` 和 `>=` 等。关于向量数据类型支持的所有函数和操作符,可参阅[向量函数与操作符](/vector-search/vector-search-functions-and-operators.md)。

比较向量数据类型时,TiDB 会以向量中的各个元素为单位进行依次比较,如:

Expand Down Expand Up @@ -223,7 +223,7 @@ ERROR 1105 (HY000): vectors have different dimensions: 1 and 3
1 row in set (0.01 sec)
```

如需了解其他转换函数,请参阅[向量函数和操作符](/vector-search-functions-and-operators.md)。
如需了解其他转换函数,请参阅[向量函数和操作符](/vector-search/vector-search-functions-and-operators.md)。

### 向量与其他数据类型之间的转换

Expand All @@ -233,13 +233,13 @@ ERROR 1105 (HY000): vectors have different dimensions: 1 and 3

## 使用限制

有关向量类型的限制,请参阅[向量搜索限制](/vector-search-limitations.md)以及[向量搜索索引的使用限制](/vector-search-index.md#使用限制)。
有关向量类型的限制,请参阅[向量搜索限制](/vector-search/vector-search-limitations.md)以及[向量搜索索引的使用限制](/vector-search/vector-search-index.md#使用限制)。

## MySQL 兼容性

向量数据类型只在 TiDB 中支持,MySQL 不支持。

## 另请参阅

- [向量函数和操作符](/vector-search-functions-and-operators.md)
- [向量搜索索引](/vector-search-index.md)
- [向量函数和操作符](/vector-search/vector-search-functions-and-operators.md)
- [向量搜索索引](/vector-search/vector-search-index.md)
Loading
Loading