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

如何用Azure.Search.Documents .NET SDK填充运行时新增的ACS字段?

使用Azure.Search.Documents .NET SDK填充动态添加的搜索字段

不需要直接发起HTTP调用,.NET SDK完全支持处理这类运行后添加的动态字段,推荐通过JsonExtensionData特性实现字典键值对的自动展开,具体实现如下:

修改实体类结构

给字典字段添加JsonExtensionData特性,SDK序列化时会自动将字典中的键值对转换为搜索文档的顶级字段:

using System.Text.Json.Serialization;
using Azure.Search.Documents.Indexes;

public class DynamicDocument {
    [SimpleField(IsKey = true)]
    public string id { get; set; }

    [JsonExtensionData]
    public Dictionary<string, object> attributes { get; set; }
}

提交动态字段文档

创建文档实例并填充动态字段后,直接通过SDK的上传接口提交即可:

// 假设已初始化SearchClient实例searchClient
var dynamicDoc = new DynamicDocument {
    id = "doc_001",
    attributes = new Dictionary<string, object> {
        ["post_title"] = "动态生成的标题",
        ["post_content"] = "动态添加的内容字段",
        ["view_count"] = 120
    }
};

await searchClient.UploadDocumentsAsync(new[] { dynamicDoc });

注意事项

  • 确保目标搜索索引中已提前创建对应动态字段,或者开启了自动字段映射功能(允许索引自动创建匹配类型的字段)
  • 字典类型建议使用Dictionary<string, object>,以兼容字符串、数字等多种数据类型的动态字段

内容的提问来源于stack exchange,提问作者Andy N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:21:34