将内容存储在 Cloudflare D1 中的团队,现在可以直接把选定记录传入 AI Search,无需单独进行中间导出。2026 年 11 月 12 日,Cloudflare 在该服务的测试版中新增了 D1 数据源:开发者设置只读查询,AI Search 会将每条返回的记录转换为文档,并按计划更新索引。

有哪些变化
此前,AI Search 提供了其他类别的数据源,例如 R2 对象或网页内容。现在,D1 可以直接将表格数据传入索引,例如已发布的文章、商品目录或知识库记录。Cloudflare 在11 月 12 日的变更日志条目中介绍了这项更新;可通过控制面板、REST API 或 Workers 绑定创建使用 D1 数据源的实例。
数据库所有者通过 SQL 查询指定哪些记录进入索引,以及哪些字段作为文档标题、正文和元数据。例如,对于文章数据库,查询可以只选择已发布的内容,并将列指定为 id、title、content 和 meta_category。这样,搜索视图便由开发者设定的查询结果构建。
连接方式
设置 D1 数据源时,AI Search 会执行指定查询,逐行建立索引,并按计划同步。使用 REST API 和 Workers 绑定时,需要提供同一 Cloudflare 账户中的 D1 数据库 ID、服务令牌 ID,以及一个返回 id 列的查询。通过控制面板,用户可以选择数据库、编写查询,并在创建实例前用一行数据测试结果;具体步骤见D1 数据源文档。
列名决定字段用途:title 用作文档标题,content 用作正文,而带有 meta_ 前缀的列会保存为元数据。根据文档模板,其他列也可能以带标签的字段形式显示。这让开发者可以在 SQL 中选择搜索所需的类别和字段。
服务接受哪些查询
查询必须是以 SELECT 或 WITH 开头的单条读取语句。它必须返回非空结果,且其中的 id 值必须唯一并且非空;最多可返回 100,000 行,查询长度不得超过 10,000 个字符。文档还禁止使用绑定参数、注释和多种 SQL 结构,包括写入操作和管理命令。不能使用 ORDER BY 或 LIMIT:AI Search 会按 id 排序并分页读取结果。
如果某行的 id 值发生变化,AI Search 会删除原文档并创建新文档。因此,同步时应选择稳定的标识符。结果中的每一列也必须有唯一名称;必要时可以通过 AS 指定名称。由于同步会读取查询的完整结果,因此会计入 D1 读取量;使用 WHERE 条件有助于限制索引范围。
适用场景
这项集成适用于已经在 D1 中存储结构化内容的团队。他们可以通过数据库查询选出要纳入搜索语料的记录,并在行被添加、修改或删除时同步索引。例如,商品目录可以只包含当前可售商品,帮助中心则可以只包含已发布的文章及其类别。每一行都会成为一份独立文档。
这项集成目前仍处于测试版。正式启用前,建议检查 id 是否唯一且稳定,只选择必要的列,并评估结果集大小和同步计划对 D1 用量的影响。索引会按所选间隔更新,而每次同步读取完整结果都会消耗 D1 读取量。
总体而言,D1 现在可以作为 AI Search 的数据源,SQL 查询则决定数据库中的哪些行会成为搜索文档。对于在 D1 中存储内容的团队,这提供了直接连接数据与索引的方式;规划时需要考虑行数上限以及同步时的数据库读取量。