我有一些非常大的 blob,因此我使用以下代码在 blob 行上设置了 AzureSearch_SkipContent
:
if (b.Properties.Length >= 134217728)
{
b.Metadata["AzureSearch_SkipContent"] = "true";
await b.SetMetadataAsync();
}
但是当我查看警告和错误时,我可以看到索引器已尝试对内容进行索引,即使我已要求它跳过,我看到的错误是(这是在错误下,所以我猜它不会为该 blob 索引任何内容):
{
"key": null,
"errorMessage": "The blob '113443f46d1b184650bf4b0d5b0b3806055c43558a676b778de13f1b7ef4da93' has the size of 218285352 bytes, which exceeds the maximum size for document extraction for your current service tier."
},
如果我在存储资源管理器中查看这个 blob,我会看到
最佳答案
2018 年 1 月 3 日更新
为了使此方案正常工作,我们添加了 indexStorageMetadataOnlyForOversizedDocuments
索引器配置设置。它采用 bool 值,默认为 false
,因此在索引器配置中将其设置为 true
以启用它。该产品刚刚发布,将于 1 月 19 日在全局范围内投入生产。
原始回复
“true”
和 “True”
都是 AzureSearch_SkipContent
的有效值。问题是 AzureSearch_SkipContent
确实不意味着 blob 内容被忽略。
Blob 内容有两种贡献方式:
- 元数据,例如作者、修改日期等。
- 文档的文本内容。
AzureSearch_SkipContent
表示 Azure 搜索仅执行 #1,而不执行 #2,但仍需要下载 Blob,因此 Blob 大小配额发挥作用。
目前,唯一的其他每个 blob 处理选项是 AzureSearch_Skip
,它完全跳过 blob。您还可以使用 MaxFailedItems
/MaxFailedItemsPerBatch
来指定特定数量的错误,如 Dealing with errors 中所述。 。
我认为对于这种情况真正有用的是 Azure 搜索能够自动提取大型 Blob 的存储元数据,而无需单独处理所有 Blob。请随时在我们的 User Voice site 上添加对此的建议.
关于Azure 搜索 - AzureSearch_SkipContent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48061207/