Azure 搜索:16 MB 限制不适用于 Edm.String 字段

Azure Search: 16 MB limit not applicable on Edm.String field

对于索引 REST API 调用 (/indexes/test-index/docs/index),documentation 指出:"For a batch with a single document, the maximum document size is 16 MB of JSON."

但是,对于我的索引中 Edm.String 类型的字段 'body2',我传递了一个 50 MB 长字符串 (5,24,28,800 ASCII字符)已成功添加到索引中。

16 MB 限制何时适用?同样的限制是否也适用于 .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
}

您可能看到了潜在限制增加的一些后期排期。我们正在探索增加整体请求大小,以便为人们提供空间来索引更大的批次,这可以对整体请求率有一些很好的改进。

我们正在寻找关于在边缘做什么的数据。驱动方案是更大批量的合理大小的文档,但我们正在考虑如何处理真正的大文档和真正大的字段。看起来我们最终可能会放宽总体请求大小并对字段大小施加限制,但这还有待观察。

我们谨慎地以优化应用程序兼容性的方式来规划我们的测试版,但如果您想 100% 确定向前兼容性,请在我们更新文档之前保持接近记录的限制。