导读
生成式 AI 正以前所未有的方式为应用创新带来无限可能,也对数据基础设施的演进提出了全新挑战。AI 应用的数据构成天然是多模态数据的复杂融合体,应用与数据库的交互,也逐渐从单一维度的精确查询演变为语义、语法相结合的混合访问模式。
TiDB 在多模态数据底座能力方面持续演进,继支持向量搜索、MCP 协议之后,现已在 TiDB Cloud Serverless 上线全文搜索(Beta)功能,欢迎大家试用体验。
TiDB 全文搜索介绍
全文搜索 (Full-Text Search) ,也称关键字搜索,旨在帮助用户在海量文本中精确、快速地定位包含特定关键词的内容,它与 TiDB 现有的向量搜索功能形成了能力互补:
向量搜索主要关注语义近似(如相同种类内容),而全文搜索主要关注准确匹配(如具体产品名)。两者结合,能有效满足复杂的混合搜索查询需求,显著提升 AI 应用的回答质量与准确性。
核心优势:
- 多语言及混合语言支持:TiDB 全文搜索不需要用户指定语言,即可高质量地搜索多语言文本,并使用 BM25 算法进行相关性评分,返回给用户最相关的结果。TiDB 支持的语言包括英文、中文、日文、韩文等。此外,同一张表中多个语言的文本可以混合存储。这非常适用于 GenAI 的 SaaS 服务,如知识库场景,因为这类服务往往面向世界各地多语言用户。
- 统一的数据底座,简化 AI 应用架构:TiDB 同时支持结构化和非结构化数据,并通过 SQL、Python 或其他您熟悉的编程语言提供查询 API。以基于知识图谱的 RAG 应用(GraphRAG)为例,用户只需部署 TiDB 即可托管所有数据,包括原始文本、知识图谱、向量数据、元信息等。更重要的是,用户可使用 SQL 在 TiDB 对所有结构数据进行交叉查询,例如轻松实现“搜索语义上最接近给定查询的知识图谱边,并返回其二度邻节点以及相应的文本块”。
- 降低运营开销和成本: AI 应用存在用户流量的高峰和低谷,进而对数据库的用量也存在高峰和低谷。我们深知这一点——TiDB Cloud Serverless 是全托管的,全自动处理扩缩容,且基于实际使用量付费,从而能为您降低用户睡觉时的运营成本。
混合搜索的价值:以 RAG 场景为例
在 RAG(检索增强生成) 应用中,用户问题多种多样,有些用户可能提出偏向于语义和理解的问题,有些用户可能提出偏向于具体产品名或关键字的问题。同时使用向量搜索和全文搜索(即混合搜索 Hybrid Search)通常能更好地涵盖多变的用户问题,利用这两种搜索方法的优势,确保找到更最相关的文档,从而生成更准确的回答,通常流程如下图所示。

即刻体验
我们提供两种方式,帮助您快速上手 TiDB 全文搜索。
通过 TiDB Labs 在线实验室体验
适合人群: 希望立即体验、免去任何本地环境配置的用户
TiDB Labs 是我们提供的免费在线实验环境,拥有沙盒 TiDB 集群,能执行 Python 程序,并包含我们精心设计的 Step by Step 教程,只需浏览器即可访问,非常适合快速了解和体验 TiDB 全文搜索的功能和用法。点击链接即可体验 TiDB 全文搜索实验:https://labs.pingcap.com/labs/demo_422 。
另外,该实验还涵盖了如何使用 PyTiDB Python SDK (https://github.com/pingcap/pytidb) 对文本进行向量化嵌入、向量搜索、混合搜索等其他 AI 应用开发相关内容,推荐感兴趣的开发者进行体验。
实验环境自带了向量嵌入模型免费供您使用,无需担心是否需要申请 OpenAI API Key 等问题。

TiDB Labs(https://labs.pingcap.com) 上除了可以体验全文搜索等 AI 相关的 TiDB 能力,还可以体验其他丰富的实验内容,这些都是在线、免费、无需搭建环境的,如:
- 数据库管理实践:用户权限管理、集群监控、备份恢复等核心运维技能
- SQL 调优专区:查询优化、索引设计、执行计划分析等性能调优技巧
- 数据迁移工具:使用 Dumpling 导出数据、TiDB Lightning 导入数据、TiCDC 复制变更事件
- 最新特性体验:TiDB V8.1/8.5 新特性实践,包括 TiProxy、向量搜索、全局索引等
- AI 应用开发:结合 TiDB Vector Search, Full Text Search 和 Hybrid Search 构建 GenAI RAG 应用
本地开发,通过 Python SDK 连接 TiDB Serverless 体验
适合人群: 希望在自己熟悉的本地环境中,使用 PyTiDB SDK 深入探索和构建 AI 应用的开发者
优势:
- 真实环境: 直接体验生产级的 TiDB Cloud Serverless 服务
- 额度充裕: 免费账户额度充足,无需信用卡即可注册
- 功能强大:
PyTiDB
SDK (https://github.com/pingcap/pytidb) 提供了高度封装和友好的向量搜索、全文搜索和混合搜索 API,支持自动向量嵌入 (Auto Embedding) 等功能
操作步骤:
Step 1:在 eu-cental-1 区域创建 TiDB Cloud Serverless 集群
全文搜索目前仅在特定 region 的 TiDB Cloud Serverless 集群中提供,您可以遵循以下步骤在支持的 region 中免费创建 TiDB Cloud Serverless 集群:
- 如果您没有 TiDB Cloud 帐户,可在这里免费注册(只需邮箱验证即可):https://tidbcloud.com/free-trial ; 如有账户,可在这里登录:https://auth.tidbcloud.com/login 。
- 点击 Create Cluster 创建集群:https://tidbcloud.com/project/clusters ,Tier 选择 Serverless,Cloud 选择 AWS,Region 选择 Frankfurt (eu-cental-1) ,点击 Create 即可创建 TiDB Cloud Serverless 集群。您的集群大约会在 30 秒内创建完毕。

Step 2:安装 PyTiDB SDK(开源地址:https://github.com/pingcap/pytidb)
pip install 'pytidb[models]'
# If you only need basic capabilities:
# pip install pytidb
Step 3:连接到 TiDB Cloud Serverless 集群
通过以下代码可以通过 Python 访问到 TiDB Cloud Serverless 集群。
from pytidb import TiDBClient
db = TiDBClient.connect(
host="gateway01.eu-central-1.prod.aws.tidbcloud.com",
port=4000,
username="xxxxxxxxxxxxx.root",
password="xxxxxxx",
database="test",
)
其中的连接参数可遵循以下步骤从 TiDB Cloud 控制台中查看:
- 导航到 Clusters 页面 (https://tidbcloud.com/project/clusters) ,点击您的集群名称转到其概览页
- 单击右上角的 Connect。这将弹出一个连接对话框,其中列出了连接参数
- 单击 Generate Password 生成连接集群所需的密码。所有集群默认没有密码,且无法从外部连接。通过 Generate Password 按钮创建密码后才能从外部连接到集群。请注意保管好生成的密码,它将不会再次显示,遗忘后可以重新生成新的密码。
- 将连接参数填充到代码的对应位置中,如下所示。

Step 4:创建带有全文索引的表并插入一些示例数据
全文搜索依赖于全文索引。为了展示 TiDB 独特的混合语言搜索能力,以下例子中我们将使用中文、日文和英文三种语言的样例文本作为示例数据,这些样例文本是一些“蓝牙耳机”的产品说明:
from pytidb.schema import TableModel, Field
from pytidb.datatype import Text
class StockItem(TableModel, table=True):
id: int = Field(primary_key=True)
title: str = Field(sa_type=Text)
table = db.create_table(schema=StockItem)
table.create_fts_index("title")
table.bulk_insert([
{"id": 1, "title": "イヤホン bluetooth ワイヤレスイヤホン "},
{"id": 2, "title": "完全ワイヤレスイヤホン/ウルトラノイズキャンセリング 2.0 "},
{"id": 3, "title": "ワイヤレス ヘッドホン Bluetooth 5.3 65時間再生 ヘッドホン 40mm HD "},
{"id": 4, "title": "楽器用 オンイヤーヘッドホン 密閉型【国内正規品】"},
{"id": 5, "title": "ワイヤレスイヤホン ハイブリッドANC搭载 40dBまでアクティブノイズキャンセル"},
{"id": 6, "title": "Lightweight Bluetooth Earbuds with 48 Hours Playtime"},
{"id": 7, "title": "True Wireless Noise Cancelling Earbuds - Compatible with Apple & Android, Built-in Microphone"},
{"id": 8, "title": "In-Ear Earbud Headphones with Mic, Black"},
{"id": 9, "title": "Wired Headphones, HD Bass Driven Audio, Lightweight Aluminum Wired in Ear Earbud Headphones"},
{"id": 10, "title": "LED Light Bar, Music Sync RGB Light Bar, USB Ambient Lamp"},
{"id": 11, "title": "无线消噪耳机-黑色 手势触控蓝牙降噪 主动降噪头戴式耳机(智能降噪 长久续航)"},
{"id": 12, "title": "专业版USB7.1声道游戏耳机电竞耳麦头戴式电脑网课办公麦克风带线控"},
{"id": 13, "title": "投影仪家用智能投影机便携卧室手机投影"},
{"id": 14, "title": "无线蓝牙耳机超长续航42小时快速充电 流光金属耳机"},
{"id": 15, "title": "皎月银 国家补贴 心率血氧监测 蓝牙通话 智能手表 男女表"},
])
Step 5:执行全文搜索
print(table.search("bluetooth耳机", search_type="fulltext").limit(3))
查询结果会使用 BM25 算法按相关性排序,最相关的文档在前:
[
{"id": 14, "title": "无线蓝牙耳机超长续航42小时快速充电 流光金属耳机"},
{"id": 11, "title": "无线消噪耳机-黑色 手势触控蓝牙降噪 主动降噪头戴式耳机(智能降噪 长久续航)"},
{"id": 1, "title": "イヤホン bluetooth ワイヤレスイヤホン"},
]
您可以进一步参阅以下 TiDB Cloud 文档和开发生态文档了解更多相关内容:
- 使用 SQL 进行全文搜索: https://docs.pingcap.com/tidbcloud/vector-search-full-text-search-sql/
- 使用 Python 进行全文搜索:https://docs.pingcap.com/tidbcloud/vector-search-full-text-search-python/
- 混合搜索:https://docs.pingcap.com/tidbcloud/vector-search-hybrid-search/
- PyTiDB:https://pingcap.github.io/ai/
- PyTiDB 示例:https://github.com/pingcap/pytidb/tree/main/examples
结语
TiDB 的愿景,是成为 AI 时代真正一体化的数据基座,让开发者无需在多个割裂的系统间挣扎,即可无缝处理任何类型与规模的 AI 负载。全文搜索功能的发布,是我们朝着这一目标迈出的又一坚实步伐。
当然,这仅仅是开始。我们将持续打磨产品,在未来版本中不断提升易用性、优化搜索质量、支持更复杂的组合查询。
AI 时代的数据库应由构建者共同定义。我们期待您的声音,无论是问题、建议还是大胆的想法,都欢迎在 TiDB 社区论坛 asktug.com 与我们交流。
目录