使用 Azure 搜索 AzureSearch_SkipContent 元数据来索引图像但不尝试提取内容

Using Azure Search AzureSearch_SkipContent metadata to index image but without trying to extract content

我有一个 Azure 存储容器,其中包含存储为 blob 的混合文件(pdf、doc、docx、jpg、png...)。

我正在尝试使用 Azure 搜索 blob 索引器为所有文件(包括图像)的元数据编制索引,并在可能的情况下提取内容以进行全文搜索(显然图像没有任何提取物table文字内容)。想要提取图像元数据背后的想法是,我希望在图像的搜索索引中有一个条目,因为我在 DocumentDB 中有其他数据,我想使用 WebJob 手动合并到搜索索引中。

我使用 Azure 门户添加了数据源、索引和索引器,但是,当索引器运行时,它失败并出现以下错误:

Document 'https://xxx.blob.core.windows.net/xxx/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-v1' has unsupported content type 'image/jpeg'

阅读关于 https://azure.microsoft.com/en-us/documentation/articles/search-howto-indexing-azure-blob-storage/#using-custom-metadata-to-control-document-extraction 的文档,它提到如果我使用键 "AzureSearch_SkipContent" 和值 "true" 将元数据添加到 blob,那么它不应该尝试提取内容.

将 "AzureSearch_SkipContent" 元数据添加到 https://azure.microsoft.com/en-us/documentation/articles/search-howto-indexing-azure-blob-storage/#content-type-specific-metadata-properties 的 table 中未列出的所有内容类型后,索引器仍然失败并出现上述错误。

如果我将 "AzureSearch_Skip" 元数据设置为 "true",那么索引器会跳过图像 blob,但是我在索引中没有任何内容 - 这不是我想要的.

这是我要实现的步骤示例:

那么,是否可以将 "AzureSearch_SkipContent" 添加到图像 blob 并在搜索索引中显示一些内容?或者我唯一的解决方案是 "AzureSearch_Skip" 它完全然后手动添加一些东西到它的搜索索引中?

AzureSearch_SkipContent 标志仅适用于受支持的内容类型,其中 Azure 搜索可以提取特定于内容类型的元数据。

Azure 搜索还支持索引 存储元数据并跳过内容类型元数据和内容提取 - 在这种情况下,内容类型无关紧要。但是,此设置仅在索引器范围内可用,适用于 all blob。参见 Index storage metadata only

我们从几个客户那里听到了类似的问题,因此我们添加了另一个开关,其行为如下:

  1. 具有受支持内容类型的 Blob 将被完全索引(当然,尊重每个 Blob 标志)
  2. 对于内容类型不受支持的 blob,Azure 搜索将为存储元数据编制索引,并且不会像今天那样在这些 blob 上失败。

看起来这对您的情况会有帮助。

2016 年 12 月 7 日更新: 此功能现已可用。要在遇到不受支持的内容类型时继续编制索引,请将 failOnUnsupportedContentType 配置参数设置为 false:

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2016-09-01
Content-Type: application/json
api-key: [admin key]

{
 ... other parts of indexer definition
 "parameters" : { "configuration" : { "failOnUnsupportedContentType" : false } }
} 

有关详细信息,请参阅 Controlling which blobs are indexed