Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 使用Azure Search AzureSearch_SkipContent元数据索引图像,但不尝试提取内容_Image_Azure_Search_Azure Storage Blobs_Azure Cognitive Search - Fatal编程技术网

Image 使用Azure Search AzureSearch_SkipContent元数据索引图像,但不尝试提取内容

Image 使用Azure Search AzureSearch_SkipContent元数据索引图像,但不尝试提取内容,image,azure,search,azure-storage-blobs,azure-cognitive-search,Image,Azure,Search,Azure Storage Blobs,Azure Cognitive Search,我有一个Azure存储容器,其中包含以blob形式存储的混合文件(pdf、doc、docx、jpg、png等等) 我正在尝试使用Azure Search blob indexer为所有文件(包括图像)的元数据编制索引,并在可能的情况下提取内容进行全文搜索(显然图像没有任何可提取的文本内容)。想要提取图像元数据的想法是,我希望在图像的搜索索引中有一个条目,因为DocumentDB中有其他数据,我希望使用WebJob手动将这些数据合并到搜索索引中 使用Azure门户,我添加了数据源、索引和索引器,但

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

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

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

文档'https://xxx.blob.core.windows.net/xxx/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-v1'具有不受支持的内容类型'image/jpeg'

阅读关于它的文档时会提到,如果我向blob中添加了关键字为“AzureSearch_SkipContent”且值为“true”的元数据,那么它就不应该尝试提取内容

将“AzureSearch_SkipContent”元数据添加到上表中未列出的所有内容类型后,索引器仍然失败,出现上述错误

如果我将“AzureSearch\u Skip”元数据设置为“true”,那么索引器确实会跳过图像blob,但是索引中没有任何内容,这不是我想要的

以下是我试图实现的步骤示例:

  • (例如)灭火器的图像保存到blob存储中
  • 同时,我在DocumentDB中存储了一些关于灭火器的额外信息
  • 我希望blob indexer查找新图像并向新blob的搜索索引中添加一行,而不尝试提取任何文本内容
  • 自定义WebJob将使用相关DocumentDB文档中的信息更新搜索索引中的新行

那么,是否可以将“AzureSearch_SkipContent”添加到图像blob中,并在搜索索引中显示它的内容?或者,我唯一的解决方案是“AzureSearch\u跳过”它,然后手动将某些内容添加到搜索索引中吗?

AzureSearch\u SkipContent
标志仅适用于受支持的内容类型,其中Azure search可以提取特定于内容类型的元数据

Azure Search还支持仅为存储元数据编制索引,并跳过内容类型元数据和内容提取-在这种情况下,内容类型无关紧要。但是,此设置仅在索引器范围内可用,并应用于所有blob。看

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

  • 具有受支持内容类型的blob将被完全索引(当然,关于每个blob标志)
  • 对于内容类型不受支持的Blob,Azure Search将索引存储元数据,并且不会像今天一样在这些Blob上失败 看来这对你的情况会有帮助

    2016年12月7日更新: 此功能现在可用。要在遇到不支持的内容类型时继续索引,请将
    failOnSupportedContentType
    配置参数设置为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 } }
    } 
    

    有关更多信息,请参见

    谢谢,这非常有帮助。听起来新的开关正是我想要的功能。是否有新交换机何时可用的估计?目前无法提供正式的预计到达时间,但可能需要2-3周。您知道这是否已经实施?是的。请参阅处理不支持的内容类型部分。这是一个相当愚蠢的解决方案,因为现在我的索引器将始终处于警告状态,即使一切正常。这将很难发现可能出现的其他警告。