我有一个Azure Cognitive Search索引,索引来自多个数据源的数据。每个数据源都使用几乎相同的索引器进行索引。每个索引器调用相同的技能集配置。
在索引定义中,我有一个标记为"datasource"
的字段,用于标识特定文档的数据源。我想有索引器或使用模块化技能,如有条件的技能,设置基于数据源的这个字段的值。我明白,如果没有找到值,可以使用条件技能来处理字段的值,但我想避免为每个索引器创建新的技能集。我的数据源是blob容器中多种类型的文档。
仅使用索引器定义可以将字段的值赋给字符串手动在定义中,通过某种方式提取数据源的名称,还是在技能集定义中使用模块化技能?
我一直在追求的一个途径是在容器级别设置用户指定的blob元数据。但是,我无法使用索引器或技能集成功检索此信息。我不想在容器中的每个blob上设置这个用户指定的blob元数据。不幸的是,不可能以一种将唯一信息传递给技能集的方式配置blob数据源。为每个数据源设置单独的技能集可能是最干净的选择。或者,您可以将metadata_storage_path传递给自定义技能,并通过约定或映射解析容器路径以返回值。