Azure AI 搜索中的服务限制

对存储、工作负荷以及索引和其他对象的数量的最大限制取决于你是在“免费”、“基本”、“标准”还是“存储优化”定价层上创建 Azure AI 搜索

  • 免费层是 Azure 订阅随附的多租户共享服务。

  • 基本 为规模较小的生产工作负荷提供专用计算资源。

  • 标准层在专用计算机上运行,在每个级别上都具有更多存储和处理容量。 标准层共有四个级别:S1、S2、S3 和 S3 HD。 S3 高密度 (S3 HD) 层旨在用于多租户方案和较大数量的小型索引(每个服务 3,000 个索引)。 S3 HD 不支持 索引器,因此数据引入必须使用将数据从源推送到索引的 API。

  • “存储优化”层在总存储量、存储带宽和内存量比“标准”层更高的专用计算机上运行。 此层级面向大型、缓慢变化的索引。 “存储优化”层分为两个级别:L1 和 L2。

订阅限制

可创建多个可计费的搜索服务(基本层和更高层级),最多可创建每层允许的服务数上限。 例如,在同一订阅中,最多可以在基本层创建 16 个服务,在 S1 层也创建 16 个服务。 有关层级的详细信息,请参阅为 Azure AI 搜索选择层级(或 SKU)

最大服务数限制可以根据请求提高。 如果需要在同一订阅中使用更多服务,请提交支持请求

资源 免费 1 基本 S1 S2 S3 S3 HD L1 L2
最大服务数 1 16 16 8 6 6 6 6
最大搜索单位数 (SU)2 非适用 3 个 SU 36 个 SU 36 个 SU 36 个 SU 36 个 SU 36 个 SU 36 个 SU

1 每个 Azure 订阅可以有一个免费的搜索服务。 免费层基于与其他客户共享的基础结构。 硬件不是专用的,因此不支持纵向扩展,并且存储限制为 50 MB。

2 搜索单位 (SU) 即计费单位,以副本分区形式分配。 两者都是必需项。 若要了解有关 SU 组合的详细信息,请参阅估计和管理搜索服务的容量

服务限制

存储、分区和副本的搜索服务限制因服务创建日期而异,支持区域中较新的服务的限制更高。 限制因服务创建日期而异:

搜索服务受存储上限限制(分区大小乘以分区数)或者受索引数上限索引器数上限的硬性限制(以先达者为准)。

服务级别协议 (SLA) 适用于计费服务,其中查询工作负荷有两个或多个副本,或者查询和索引工作负荷有三个或更多副本。 分区数不属于 SLA 相关考虑因素。 有关详细信息,请参阅 Azure AI 搜索中的可靠性

免费服务没有固定分区或副本,它们与其他订阅者共享资源。

2024 年 4 月 3 日之前

资源 免费 基本 S1 S2 S3 S3 HD L1 L2
服务级别协议 (SLA)
存储(分区大小) 50 MB 2 GB 25 GB 100 GB 200 GB 200 GB 1 TB(兆字节) 2兆字节
分区 非适用 1 12 12 12 3 12 12
副本 非适用 3 12 12 12 12 12 12

2024 年 4 月 3 日之后

  • 基本层级支持三个分区和三个副本,总共有 9 个搜索单位 (SU)。 它还具有更大的分区。
  • S1、S2、S3 和 S3 HD 具有更大的分区,存储量大 3 到 7 倍不等,具体取决于层级。
  • 更高的容量仅限于受支持区域中的新搜索服务。 目前无法进行就地升级。
资源 免费 基本 S1 S2 S3 S3 HD L1 L2
服务级别协议 (SLA)
存储(分区大小) 50 MB 15 GB 160 GB 512 GB 1 TB 1 TB 1 TB(兆字节) 2兆字节
分区 非适用 3 12 12 12 3 12 12
副本 非适用 3 12 12 12 12 12 12

2024 年 5 月 17 日之后

  • L1 和 L2 具有更大的分区存储和计算能力。
  • 更高的容量仅限于受支持区域中的新搜索服务。 目前无法进行就地升级。
资源 免费 基本 S1 S2 S3 S3 HD L1 L2
服务级别协议 (SLA)
存储(分区大小) 50 MB 15 GB 160 GB 512 GB 1 TB(兆字节) 1 TB(兆字节) 2 TB 4 TB
分区 非适用 3 12 12 12 3 12 12
副本 非适用 3 12 12 12 12 12 12

存储限制较高的受支持区域

服务必须位于以下区域之一才能获取额外的存储。 观看 Azure AI 搜索中新增功能中的公告,了解如何扩展到其他区域。

从 2024 年 5 月 17 日开始可用

国家 为每个分区提供额外容量的区域
中国 中国北部 3、中国东部 3

索引限制

资源 免费 基本 1 S1 S2 S3 S3 HD L1 L2
最大索引数 3 5 或 15 50 200 200 每个分区 1000,每个服务 3000 10 10
每个索引的最大简单字段数目 2 1000 100 1000 1000 1000 1000 1000 1000
每个矢量场的最大维度数 4096 4096 4096 4096 4096 4096 4096 4096
每个索引的复杂集合数上限 40 40 40 40 40 40 40 40
每个文档的所有复杂集合的最大元素数目 3 3000 3000 3000 3000 3000 3000 3000 3000
复杂字段的最大深度 10 10 10 10 10 10 10 10
每个索引的建议器数上限 1 1 1 1 1 1 1 1
每个索引的计分配置文件数上限 100 100 100 100 100 100 100 100
每个索引的最大语义配置 100 100 100 100 100 100 100 100
每个配置文件的函数数量上限 8 8 8 8 8 8 8 8
最大索引大小4 非适用 非适用 非适用 1.88 TB 2.34 TB (兆字节) 100 GB 非适用 非适用

2 在 2017 年 12 月之前创建的基本服务对索引数的限制较低(为 5 个而不是 15 个)。 基本层是唯一具有下限(每个索引 100 个字段)的层级。

2 字段的上限包括复杂集合中的一级字段和嵌套子字段。 例如,如果一个索引包含 15 个字段,并且有两个复杂集合,每个集合有 5 个子字段,则索引的字段计数为 25。 具有大型字段集合的索引可能会很慢。 将字段和属性限制为你需要的字段和属性,并运行索引和查询测试以确保性能可以接受。

3 元素数存在上限,因为大量元素会导致索引所需的存储大量增加。 复杂集合的元素定义为该集合的成员。 例如,假设 酒店文档具有客房集合。 每个“Rooms”集合中的房间都被视为一个元素。 编制索引期间,索引编制引擎一次可最多安全地处理整个文档中的 3000 个元素。 中引入了api-version=2019-05-06,且仅适用于复杂集合,不适用于字符串集合或复杂字段。

4 对于大多数层,最大索引大小是搜索服务上可用的总存储。 对于具有多个分区的 S2、S3 和 S3 HD 服务,因此存储更多,表中提供了单个索引的最大大小。 适用于 2024 年 4 月 3 日之后创建的搜索服务。

如果你的服务恰好是在更强大的群集上预配的,你可能会发现最大限制有所不同。 这里的限制代表了共同点。 根据上述规范构建的索引可以跨任何区域的等效服务层移植。

文档限制

每个索引的最大文档数为:

  • 在基本、S1、S2、S3 层级上,为 240 亿个
  • 在 S3 HD 层级上,为 20 亿个
  • 在 L1 层级上,为 2880 亿个
  • 在 L2 层级上,为 5760 亿个

每个文档的最大大小约为 16 MB。 文档大小实际上是索引 API 请求有效负载的大小限制,即 16 MB。 该有效负载可以是单个文档,也可以是一批文档。 对于具有单个文档的批次,最大文档大小是 16 MB JSON。

文档大小适用于将文档上传到搜索服务的推送模式索引。 如果使用索引器进行拉取模式索引,则源文件可以是任意文件大小,但需符合索引器限制。 对于 Blob 索引器,文件大小的限制在更高层中更大。 例如,S1 限制为 128 MB,S2 限制为 256 MB,依此类推。

估算文档大小时,请记得仅为能够优化搜索场景的字段建立索引。 排除在要运行的查询中没有用途的源字段。

矢量索引大小限制

使用矢量字段为文档编制索引时,Azure AI 搜索会使用提供的算法参数构建内部矢量索引。 这些矢量索引的大小取决于为服务层(或SKU)的矢量搜索保留的内存。 有关管理矢量存储以及使其实现最大化的指导,请参阅矢量索引大小和保持在限制范围内

矢量限制因以下情况而异:

从 2024 年 4 月开始,新的搜索服务在提供额外容量的区域(即大部分)中具有更高的矢量上限。

此表显示了矢量配额随时间推移以 GB 为单位的增长情况。 配额是每个分区,因此,如果将新的标准(S1)服务缩放为 6 个分区,则向量配额总数为 35 乘以 6。

服务创建日期 基本 S1 S2 S3/HD L1 L2
2023 年 7 月 1 日之前 1 0.5 1 6 12 12 36
2023 年 7 月 1 日至 2024 年 4 月 3 日 2 1 3 12 36 12 36
2024 年 4 月 3 日至 2024 年 5 月 17 日 3 5 35 150 300 12 36
2024 年 5 月 17 日之后 4 5 35 150 300 150 300

1 早期预览期的初始矢量限制。

2 后期预览期的矢量限制。 以下三个区域没有更高的限制:德国中西部、印度西部、卡塔尔中部。

3 对于受支持的层级和区域,分区越大,矢量配额越高。

4 根据分区大小更新,提高多个层级和区域的矢量配额。

该服务对搜索服务中的每个分区强制实施矢量索引大小配额。 每个额外分区都会增加可用的矢量索引大小配额。 此配额是一个硬限制,用于确保你的服务保持健康运行,这意味着一旦超过限制,任何进一步的索引尝试将导致失败。 一旦通过删除一些矢量文档或增加分区数量释放了可用配额,您可以继续进行索引编制。

重要

矢量限制越高,分区大小越大。 使用较旧基础设施的区域受 7月至4月的限制。 查看区域列表,了解分区存储限制的状态。

索引器限制

“最长运行时间”存在的目的是在总体上为服务提供平衡和稳定性,但较大的数据集所需的索引编制时间可能会超过最大值允许的时间。 如果在允许的最长时间内无法完成索引作业,请尝试按计划运行。 调度程序跟踪索引的状态。 如果计划的索引作业因某种原因而中断,则索引器可以在下一次计划运行时从它上次停止的位置重新开始。

资源 免费 1 基本 2 S1 S2 S3 S3 HD 3 L1 L2
最大索引器数 3 5 或 15 50 200 200 非适用 10 10
最大数据源数 3 5 或 15 50 200 200 非适用 10 10
最大技能组数4 3 5 或 15 50 200 200 非适用 10 10
每次调用的最大索引编制负载 10,000 个文档 仅受最大文档数限制 仅受最大文档数限制 仅受最大文档数限制 仅受最大文档数限制 非适用 无限制 无限制
最小计划 5 分钟 5 分钟 5 分钟 5 分钟 5 分钟 5 分钟 5 分钟 5 分钟
最长运行时间 5 1-3 或 3-10 分钟 2 小时或 24 小时 2 小时或 24 小时 2 小时或 24 小时 2 小时或 24 小时 非适用 2 小时或 24 小时 2 小时或 24 小时
Blob 索引器:最大 Blob 大小 (MB) 16 16 128 256 256 非适用 256 256
Blob 索引器:从 blob 中提取的内容的最大字符数6 256,000 512,000 4 百万 8 百万 1600 万 非适用 4 百万 4 百万

1 对于免费服务,对于 blob 源,索引器最长执行时间为 3 分钟;对于所有其他数据源,索引器最长执行时间为为 1 分钟。 索引器调用每 180 秒一次。 对于调用 Foundry 工具的 AI 索引,免费服务限制为每天每个索引器 20 个免费事务,其中事务定义为成功通过扩充管道的文档。 (提示:可以重置索引器以重置其计数。

2 在 2017 年 12 月之前创建的基本服务在索引器、数据源和技能组方面的限制较低(为 5 个而不是 15 个)。

3 S3 HD 服务未包括索引器支持。

4 每个技能组最多拥有 30 项技能。

5 关于索引器的 2 或 24 小时最长持续时间:2 小时的最长持续时间是最常见的,这是你应计划的内容。 它是指在 公共环境中运行的索引器,该索引器卸载计算密集型处理,并为查询留出更多资源。 如果将索引器配置为仅使用分配给搜索服务的基础结构在专用环境中运行,则 24 小时限制适用。 某些较旧的索引器无法在公共环境中运行,并且这些索引器始终具有 24 小时的处理范围。 如果有连续 24 小时运行的未计划索引器,则可以假定这些索引器无法迁移到较新的基础结构。 一般情况下,对于在两小时内无法完成的索引作业,请将索引器置于 5 分钟的计划中,以便索引器可以快速继续从中断处继续。 在免费层中,3-10 分钟的最大运行时间针对具有技能组的索引器。

6 最大字符数基于 Unicode 代码单元,特别是 UTF-16。

注意

索引限制中所述,索引器还在每个文档的所有复杂集合中强制实施 3,000 个元素的上限,从支持复杂类型 (2019-05-06) 开始的最新 GA API 版本开始。 这意味着,如果使用以前的 API 版本创建了索引器,则不会受到此限制。 为了保持最大限度的兼容性,使用以前的 API 版本创建的索引器,若更新为 API 版本 2019-05-06 或更高版本,仍会被排除在这些限制之外。 客户应注意使用极大复杂集合所造成的负面影响(如前所述)。我们强烈建议使用最新 GA API 版本来创建任何新索引器。

索引器可访问专用终结点上通过共享专用链接资源 API 管理的其他 Azure 资源。 本部分介绍与此功能相关的限制。

资源 免费 基本 S1 S2 S3 S3 HD L1 L2
专用端点索引器支持
使用技能组的索引器的专用终结点支持 1
使用嵌入技能的技能集的专用终结点支持 2
最大专用终结点数 非适用 10 或 30 100 400 400 非适用 20 20
最大非重复资源类型 3 非适用 4 7 15 15 非适用 4 4

1 AI 扩充和图像分析属于计算密集型功能,会消耗过多的可用处理能力。 因此,在较低层上禁用了专用连接以确保搜索服务本身的性能和稳定性。 在基本服务上,不支持与 Azure Foundry 资源的专用连接,以保持服务稳定性。 对于 S1 层级,请确保在 2024 年 4 月 3 日之后创建了限制更高的服务。 超过 2 个 Azure OpenAI 嵌入或 Azure 视觉多模式嵌入技能的索引器限制在专用环境中运行,专用连接不可用。

2 2024 年 4 月 3 日之后创建的基本和 S1 高容量搜索服务支持专用连接到嵌入模型,其中对存储和计算处理的限制更高

3 不同资源类型的数量计算为在给定搜索服务的所有共享专用链接资源中使用的唯一 groupId 值的数量,而与资源的状态无关。

同义词限制

同义词映射的最大数量因层而异。 每个规则最多可以有 20 个扩展,扩展即为同义词。 例如,在指定“猫”的情况下,与“猫咪”、“猫科动物”和“猫属”(猫的属)的关联将算作 3 个扩展。

资源 免费 基本 S1 S2 S3 S3 HD L1 L2
最大同义词映射数 3 3 5 10 20 20 10 10
每个映射的最大规则数 五千 20000 20000 20000 20000 20000 20000 20000

索引别名限制

索引别名的最大数量因层级和服务创建日期而异。 在所有层级中,如果服务是在 2022 年 10 月之后创建的,则别名的最大数量是允许的最大索引数量的两倍。 如果服务是在 2022 年 10 月之前创建的,则限制是允许的索引数。

服务创建日期 免费 基本 S1 S2 S3 S3 HD L1 L2
2022 年 10 月之前 3 5 或 151 50 200 200 每个分区 1000,每个服务 3000 10 10
2022 年 10 月之后 6 30 100 400 400 每个分区 2000,每个服务 6000 20 20

2 在 2017 年 12 月之前创建的基本服务对索引数的限制较低(为 5 个而不是 15 个)。

代理检索限制

每个 知识库 包含 知识来源,即数据源连接,以及代理用于 代理检索的配置。 以下限制适用于每个服务层级的知识源和知识库。

资源 免费 基本 1 S1 S2 S3 S3 HD L1 L2
最大知识源 3 5 或 15 50 200 200 0 10 10
最大知识库 3 5 或 15 50 200 200 0 10 10

1 2024年4月3日之前创建的基本服务在知识源和知识库上的限制较低(5而不是15)。

数据限制(AI 扩充)

数据限制适用于 AI 扩充管道 ,该管道调用 Foundry Tools 中的 Azure 语言进行 实体识别实体链接关键短语提取情绪分析语言检测个人信息检测。 记录的最大大小应为 50,000 个字符,通过 String.Length 进行测量。 如果需要在将数据发送到情绪分析器之前拆分数据,请使用文本拆分技能

限制

当系统接近峰值容量时,API 请求会受到限制。 对不同 API 的限制行为各不相同。 根据服务中的负载动态限制查询 API(搜索/建议/自动完成)和索引 API。 索引 API 和服务操作 API 具有静态请求速率限制。

索引相关操作的静态速率请求限制:

  • 列出索引 (GET /indexes):每个搜索单位每秒限制为 3 个
  • 获取索引 (GET /indexes/myindex):每个搜索单位每秒限制为 10 个
  • 创建索引 (POST /indexes):每个搜索单位每秒限制为 12 个
  • 创建或更新索引 (PUT /indexes/myindex):每个搜索单位每秒限制为 6 个
  • 删除索引 (DELETE /indexes/myindex):每个搜索单位每秒限制为 12 个

服务相关操作的静态速率请求限制:

  • 服务统计信息 (GET /servicestats):每搜索单位每秒 4 个

语义排序器限制

语义排名器使用队列系统来管理并发请求。 此系统允许搜索服务每秒获得尽可能多的查询。 达到并发请求限制时,会将其他请求置于队列中。 如果队列已满,则会拒绝进一步的请求,必须重试。

每秒语义排序器查询总数因以下因素而异:

  • 搜索服务的等级。 队列容量和并发请求限制因层而异。
  • 搜索服务中的搜索单位数。 增加并发语义排序器查询最大数量的最简单方法是向搜索服务添加其他搜索单位
  • 区域中可用的语义排序器容量总数。
  • 使用语义排序器提供查询所需的时间。 这因搜索服务的繁忙程度而异。

下表按层描述了在区域可用容量限制下的语义排名器节流限制。 可以联系 Azure 支持部门,请求增加限制。

资源 基本 S1 S2 S3 S3 HD L1 L2
最大并发请求数(每个搜索单位) 2 3 4 4 4 4 4
最大请求队列大小(每个搜索单元) 4 6 8 8 8 8 8

API 请求限制

查询存在限制,因为未绑定的查询可能会破坏搜索服务的稳定性。 通常,这样的查询是以编程方式创建的。 如果应用程序以编程方式生成搜索查询,则建议将其设计为不会生成无限大小的查询。

存在对有效负载的限制的原因类似,确保搜索服务的稳定性。 此限制适用于整个请求,包括其所有组件。 例如,如果请求批处理多个文档或命令,则整个请求必须符合支持的限制。

如果必须超出受支持的限制,则应测试工作负荷,以便了解预期内容。

除非另有说明,否则以下 API 请求适用于所有可编程接口,包括 Azure SDK。

常规:

  • 支持的最大有效负载限制为 16 MB,用于通过 REST API 和 SDK 编制索引和查询请求。
  • 最大 8 KB 的 URL 长度(仅适用于 REST API)。

索引 API:

  • 每个索引上传、合并或删除的批次最多支持 1,000 个文档。

查询 API:

  • 矢量查询中最多 10 个字段
  • $orderby 子句中最多 32 字段。
  • 搜索子句中最多 100,000 个字符。
  • 搜索中的子句数不超过 3,000 个。
  • 通配符正则表达式查询的最大限制,由 Lucene 强制实施。 它会将模式、变体或匹配数上限设为 1,000 个实例。 此限制已实施,以避免引擎过载。

搜索词:

  • 支持的最大搜索词大小为 UTF-8 编码文本的 32,766 字节(32 KB 减 2 个字节)。 适用于关键字搜索和矢量搜索的文本属性。
  • 支持的前缀搜索正则表达式搜索的最大搜索词大小为 1,000 个字符。

API 响应限制

  • 每页搜索结果最多返回 1,000 个文档
  • 每个建议 API 请求最多返回 100 条建议

默认情况下,搜索引擎返回 50 个结果,但最多可以覆盖此参数的最大限制。

API 密钥限制

API 密钥用于服务身份验证。 有两种类型。 管理密钥在请求标头中指定,并授予对服务的完全读写访问权限。 查询密钥是只读的,已在URL中指定,通常会分发给客户端应用程序。

  • 每个服务最多 2 个管理密钥
  • 每个服务最多 50 个查询密钥