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

如何将企业关联多Blob内容合并为单个Azure Search记录?

这个一对多的关联合并场景确实比一对一要复杂些,但Azure Search其实有现成的方案能搞定,我给你拆解下具体实现思路和步骤:

核心解决思路:Azure Search索引器+技能集实现主实体与多文档的内容合并

本质是把CosmosDB里的企业作为主索引实体,将其关联的所有Blob文档内容提取后合并到同一个索引字段中,最终实现跨数据源的全文搜索。

1. 先做好数据源的关联标识准备

首先得确保两个数据源能精准关联:

  • CosmosDB中的企业文档必须有一个唯一的标识字段(比如companyId),作为关联的主键。
  • Blob存储里的每个文档,要么在Blob元数据中添加companyId字段,要么采用包含该标识的命名规则(比如{companyId}_contract.pdf),让索引器能识别哪些文档属于哪家企业。

2. 两种实现方案,按需选择

方案一:纯内置技能实现(零代码)

适合不需要自定义合并逻辑的场景,靠Azure Search的内置技能串起流程:

  • 第一步:创建CosmosDB索引器作为主数据源,同时将Blob存储添加为辅助数据源,通过索引器配置指定两个数据源的关联字段(比如用companyId做匹配)。
  • 第二步:构建技能集,先用Shaper技能将每个Blob提取出的文本内容与对应的companyId绑定;再用MergeSkill按companyId分组,把同一企业下的所有文档内容拼接成一个完整字符串。
  • 第三步:在索引字段映射中,将合并后的字符串关联到Azure Search索引的content字段。
  • 小提示:调整索引器的batchSize参数,确保能批量处理同一企业的多份文档,避免遗漏。

方案二:自定义Web技能(适合复杂合并逻辑)

如果需要过滤特定文档、给不同类型文档添加前缀标注等自定义操作,可以写一个轻量Web API作为自定义技能:

  • API逻辑很简单:接收包含companyId和文档文本的批量输入,按companyId分组后拼接内容(比如给PDF文档加[PDF]前缀,Word文档加[DOCX]前缀)。
  • 在Azure Search技能集中配置调用这个自定义API,将返回的合并内容写入索引的content字段。

3. 索引与索引器的关键配置细节

  • 确保Azure Search索引的content字段设置为Searchable和Retrievable,既支持全文搜索,也能返回合并后的内容。
  • 开启Blob索引器的文档自动解析功能(默认开启),Azure Search会自动提取.docx、.pdf里的文本内容,不需要自己处理格式解析。
  • 开启增量索引,只处理新增或修改的企业文档与Blob,提升同步效率。

4. 测试验证步骤

  • 先拿单家企业的2-3份文档做测试,查看Azure Search索引中该企业的content字段是否正确合并了所有文档内容。
  • 用Azure Search的测试查询功能,搜索文档中的关键词,验证是否能精准关联到对应的企业数据。

内容的提问来源于stack exchange,提问作者Sadiq Khoja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:21:14