You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Search 16MB限制适用场景及.NET SDK限制咨询

Azure Search 16MB限制的适用场景解析

这是个非常有意思的发现!我来帮你理清Azure Search中16MB限制的具体适用规则,以及.NET SDK的相关情况:

一、16MB限制的适用边界

文档里提到的“单个文档批次最大16MB JSON”是有前提条件的,并非所有场景都适用:

  • 针对包含可搜索字段的文档:如果你的文档中存在至少一个设置为searchable: true的字段(这类字段需要被分词、建立索引),那么单个文档的JSON总大小不能超过16MB,同时单个可搜索Edm.String字段的内容大小也不能超过16MB——这两个限制只要触发一个就会报错。
  • 针对仅含不可搜索字段的文档:如果你的所有字段都设置为searchable: false(比如仅用于存储、检索的纯文本字段),那么单个文档的大小限制会大幅放宽(目前官方允许的上限是100MB),单个不可搜索Edm.String字段的内容也可以远超过16MB,就像你测试的50MB字符串成功上传的情况。

从你的测试结果反推,你的body2字段应该是配置了searchable: false,所以绕过了16MB的限制。

二、关于.NET SDK的限制

.NET SDK本质上是Azure Search REST API的封装,所以它的限制和REST API完全一致——不会有额外的限制,也无法绕过REST API的规则。你用.NET SDK上传文档时,同样遵循上面提到的两种场景的限制。

你的测试案例参考

执行的PowerShell脚本

$headers = @{
    'api-key' = '<API Key>'
    'Content-Type' = 'application/json'
    'Accept' = 'application/json'
}
$body = @"
{
    "value": [
        {
            "@search.action": "upload",
            "id":"ddf56362-378d-481f-9313-7b8f9cd99999",
            "body2":"<50 MB long string>"
        }
    ]
}"@
$url = "https://<index-name>.search.windows.net/indexes/test-index/docs/index?api-version=2019-05-06"
Invoke-RestMethod -Uri $url -Headers $headers -Method Post -Body $body | ConvertTo-Json

响应结果

{
    "key": "ddf56362-378d-481f-9313-7b8f9cd99999",
    "status": true,
    "errorMessage": null,
    "statusCode": 200
}

内容的提问来源于stack exchange,提问作者Sumit Talesara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:38:12