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

Azure OpenAI如何映射Azure认知搜索中Edm.ComplexType的子字段?

问题解答

1. 是否可单独选择子字段?

可以单独选择复杂类型的子字段,但前提是要先确保索引中这些子字段被正确配置为可检索(searchable)和可返回(retrievable)。默认创建索引时,复杂类型的子字段可能未开启searchable属性,导致Azure OpenAI数据源向导无法识别或选择它们。

2. 是否对索引存在误解?

你遇到的问题核心是对Azure认知搜索中两类字段的索引配置逻辑理解有偏差:

  • 复杂类型(如Address)本身不能直接设置searchable,因为它是嵌套结构,必须为其内部的子字段(如City)单独配置searchable: true。
  • 集合类型(如Tags)默认可能未开启searchable,需要显式配置该属性才能被Azure OpenAI识别和调用。

具体解决步骤

步骤1:修改认知搜索索引配置

需要更新索引,为目标子字段和集合字段添加正确属性:

  1. 导出当前索引的JSON配置(在Azure认知搜索门户的索引页面点击“导出”)。
  2. 找到Address字段的子字段City,将其searchable和retrievable设为true:
    "fields": [
      ...,
      {
        "name": "Address",
        "type": "Edm.ComplexType",
        "fields": [
          {
            "name": "City",
            "type": "Edm.String",
            "searchable": true,
            "filterable": true,
            "retrievable": true,
            "sortable": true,
            "facetable": false
          }
          // 其他Address子字段按需配置
        ]
      },
      ...
    ]
    
  3. 找到Tags字段,设置searchable: true和retrievable: true:
    {
      "name": "Tags",
      "type": "Collection(Edm.String)",
      "searchable": true,
      "filterable": true,
      "retrievable": true,
      "sortable": false,
      "facetable": false
    }
    
  4. 保存修改后的JSON,重新更新索引(在门户中选择“导入”或使用REST API完成更新)。

步骤2:重新集成到Azure OpenAI Chat数据源

索引更新完成后,回到Azure OpenAI聊天部署重新配置数据源:

  • 数据源加载向导中会显示Address/City等子字段和Tags字段,直接选择这些字段即可。
  • 配置完成后,测试查询“阿尔伯克基”,就能返回包含对应地址、标签的文档信息。

注意事项

  • 复杂类型的父字段(如Address)不需要设置searchable,搜索和检索操作仅针对其子字段生效。
  • 集合类型字段开启searchable后,OpenAI可检索集合中的单个字符串元素,支持基于标签的匹配查询。

内容的提问来源于stack exchange,提问作者Oscar Santos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:27:09