You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Search结合Blob Storage实现图片及PDF内嵌图片内容搜索的技术问询

解决Azure Blob存储中图片(含PDF内嵌图片)的内容搜索问题

我来帮你梳理下如何实现Blob存储里图片(包括PDF内嵌图片)的内容搜索——毕竟Blob本身确实不支持直接提取图片内容,得结合Azure Cognitive Search的能力来搞定:

核心思路

Azure Blob存储仅负责文件存储,没法直接做图片内容的OCR提取。我们需要用Azure Cognitive Search + 计算机视觉OCR技能的组合:让Search的索引器读取Blob里的文件,对图片(含PDF内嵌图)执行OCR,把提取出的文本存入搜索索引,之后就能实现全文搜索了。

具体配置步骤

1. 准备基础资源

  • 确保你已拥有Azure Blob存储(用于存放PDF/XML/文本/图片等所有文件)
  • 创建Azure Cognitive Search资源,同时关联Azure Computer Vision资源(OCR技能需要调用它的API来完成图片文本提取)

2. 配置Blob数据源

在Cognitive Search中创建指向Blob存储容器的数据源,选择合适的身份验证方式(比如托管身份或连接字符串),确保Search服务有权限访问你的Blob文件。

3. 创建包含OCR的技能集

技能集是处理文件内容的“流水线”,我们需要添加两个关键技能:

  • OCR技能:专门提取图片(含PDF内嵌图)的文本内容
  • 合并技能:把文件原生文本(比如PDF里的文字、XML/文本文件内容)和OCR提取的图片文本合并到一个字段,方便后续统一搜索

以下是简化的技能集JSON示例:

{
  "skills": [
    {
      "@odata.type": "#Microsoft.Skills.Vision.OcrSkill",
      "context": "/document",
      "defaultLanguageCode": "en", // 根据你的文件语言调整,比如"zh-Hans"
      "detectOrientation": true, // 自动检测图片方向,提升OCR准确率
      "inputs": [
        {
          "name": "image",
          "source": "/document/normalized_images/*" // 指向索引器生成的标准化图片
        }
      ],
      "outputs": [
        {
          "name": "text",
          "targetName": "imageText" // OCR结果存入这个临时字段
        }
      ]
    },
    {
      "@odata.type": "#Microsoft.Skills.Text.MergeSkill",
      "context": "/document",
      "inputs": [
        {
          "name": "text",
          "source": "/document/content" // 文件自身的原生文本
        },
        {
          "name": "text",
          "source": "/document/imageText" // OCR提取的图片文本
        }
      ],
      "outputs": [
        {
          "name": "mergedText",
          "targetName": "mergedContent" // 合并后的文本字段,用于搜索
        }
      ]
    }
  ]
}

4. 创建搜索索引

定义索引字段,至少包含一个可搜索的文本字段(比如上面的mergedContent),用来存储合并后的原生文本和OCR结果,同时可以根据需求添加其他元数据字段(比如文件名、文件类型)。

5. 配置索引器触发处理

索引器是连接数据源、技能集和索引的核心,关键配置要注意:

  • 设置parsingMode: "default":支持处理PDF/XML/文本/图片等多种文件类型
  • 设置imageAction: "generateNormalizedImages":让索引器自动提取PDF里的内嵌图片,并生成标准化的图片供OCR技能处理
  • 设置dataToExtract: "contentAndMetadata":提取文件的内容和元数据信息

示例索引器配置片段:

{
  "name": "blob-file-indexer",
  "dataSourceName": "your-blob-datasource",
  "targetIndexName": "your-search-index",
  "skillsetName": "your-skillset",
  "parameters": {
    "configuration": {
      "parsingMode": "default",
      "imageAction": "generateNormalizedImages",
      "dataToExtract": "contentAndMetadata"
    }
  }
}

关于AzureSearch_SkipContent的用法

你提到的AzureSearch_SkipContent是Blob文件的元数据属性,具体作用是:

  • 如果给某个文件添加元数据AzureSearch_SkipContent: true,索引器会跳过提取该文件的原生文本内容,只处理图片的OCR结果
  • 适用场景:比如你只关心PDF里的内嵌图片内容,不需要PDF本身的文字,就可以给这类PDF文件添加该元数据

覆盖你提到的所有文件类型

这套方案完全支持你列出的文件类型:

  • XML/文本文件:索引器直接提取原生文本,无需OCR
  • PNG/JPEG图片:索引器自动触发OCR提取内容
  • PDF:既提取原生文本,又提取内嵌图片的OCR内容(前提是配置了imageAction)

内容的提问来源于stack exchange,提问作者Kokirala Sudheer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:17:36