Azure 搜索 - AzureSearch_SkipContent

标签 azure azure-cognitive-search

我有一些非常大的 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,我会看到

enter image description here

最佳答案

2018 年 1 月 3 日更新

为了使此方案正常工作,我们添加了 indexStorageMetadataOnlyForOversizedDocuments 索引器配置设置。它采用 bool 值,默认为 false,因此在索引器配置中将其设置为 true 以启用它。该产品刚刚发布,将于 1 月 19 日在全局范围内投入生产。

原始回复

“true”“True” 都是 AzureSearch_SkipContent 的有效值。问题是 AzureSearch_SkipContent 确实意味着 blob 内容被忽略。

Blob 内容有两种贡献方式:

  1. 元数据,例如作者、修改日期等。
  2. 文档的文本内容。

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/

相关文章:

azure - 一个阶段的输出不可用于后续阶段

Azure 搜索 - 分区不足响应错误

azure - 在 Azure 搜索上配置和使用多语言分析器

使用 String 与 DateTimeOffset 作为日期值时的 Azure 搜索性能

sql-server - 无论设置如何,Azure 搜索中的索引 View 期间超时

需要在 Terraform 服务主体的整个订阅中授予 Azure RBAC 角色 'ConfigureFactoryRepo' 才能启动数据工厂

Azure 表存储延续 token 生命周期

c# - 使用 Azure Service Fabric 与自定义 Azure 云的优缺点?

asp.net - 在 Azure 网站中将非 WWW 重定向到 WWW