Azure 搜索 - AzureSearch_SkipContent
Azure Search - AzureSearch_SkipContent
我有一些非常大的 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,我会看到
true
中需要大写 T
if (b.Properties.Length >= 134217728)
{
b.Metadata["AzureSearch_SkipContent"] = "True";
await b.SetMetadataAsync();
}
如有疑问,请使用文字并转换为字符串
b.Metadata["AzureSearch_SkipContent"] = true.ToString();
或
bool skipIndex = true;
b.Metadata["AzureSearch_SkipContent"] = skipIndex.ToString();
2018 年 1 月 3 日更新
为了让这个场景正常工作,我们正在添加 indexStorageMetadataOnlyForOversizedDocuments
索引器配置设置。它采用布尔值,默认情况下为 false
,因此在索引器配置中将其设置为 true
以启用它。这是刚出炉的,将于 1 月 19 日在全球范围内投入生产。
原始回复
"true"
和"True"
都是AzureSearch_SkipContent
的有效值。问题是 AzureSearch_SkipContent
而不是 意味着 blob 内容被忽略了。
Blob 内容以两种方式贡献:
- 作者、修改日期等元数据
- 文档的文本内容。
AzureSearch_SkipContent
意味着 Azure 搜索只执行 #1 而不是 #2,但是 blob 仍然需要下载,所以 blob 大小配额开始发挥作用。
目前,唯一的其他 per-blob 处理选项是 AzureSearch_Skip
,它完全跳过了 blob。您还可以使用 MaxFailedItems
/ MaxFailedItemsPerBatch
来指定特定数量的错误,如 Dealing with errors 中所述。
我认为对于这种情况真正有用的是 Azure 搜索能够自动提取大型 blob 的存储元数据,而无需单独处理所有 blob。请随时在我们的 User Voice site.
上为此添加建议
我有一些非常大的 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,我会看到
true
if (b.Properties.Length >= 134217728)
{
b.Metadata["AzureSearch_SkipContent"] = "True";
await b.SetMetadataAsync();
}
如有疑问,请使用文字并转换为字符串
b.Metadata["AzureSearch_SkipContent"] = true.ToString();
或
bool skipIndex = true;
b.Metadata["AzureSearch_SkipContent"] = skipIndex.ToString();
2018 年 1 月 3 日更新
为了让这个场景正常工作,我们正在添加 indexStorageMetadataOnlyForOversizedDocuments
索引器配置设置。它采用布尔值,默认情况下为 false
,因此在索引器配置中将其设置为 true
以启用它。这是刚出炉的,将于 1 月 19 日在全球范围内投入生产。
原始回复
"true"
和"True"
都是AzureSearch_SkipContent
的有效值。问题是 AzureSearch_SkipContent
而不是 意味着 blob 内容被忽略了。
Blob 内容以两种方式贡献:
- 作者、修改日期等元数据
- 文档的文本内容。
AzureSearch_SkipContent
意味着 Azure 搜索只执行 #1 而不是 #2,但是 blob 仍然需要下载,所以 blob 大小配额开始发挥作用。
目前,唯一的其他 per-blob 处理选项是 AzureSearch_Skip
,它完全跳过了 blob。您还可以使用 MaxFailedItems
/ MaxFailedItemsPerBatch
来指定特定数量的错误,如 Dealing with errors 中所述。
我认为对于这种情况真正有用的是 Azure 搜索能够自动提取大型 blob 的存储元数据,而无需单独处理所有 blob。请随时在我们的 User Voice site.
上为此添加建议