gpt4 book ai didi

c# - 在 Azure 搜索文档中使用枚举

转载 作者:太空狗 更新时间:2023-10-30 01:30:36 26 4
gpt4 key购买 nike

据我了解,如果搜索文档中有枚举,它将被转换为 int。除非我做错了什么,否则这似乎不会发生,我可以让它工作的唯一方法是将枚举转换为字符串。这似乎是错误的。有人可以告诉我我是否做错了什么或者这是不可能的吗?

示例:

public enum WebSearchRecordType{
Unknown = 0,
Doc1 = 1,
Doc2 = 2
}

public class WebSearchDocument{
public Guid Id {get;set;}
public WebSearchRecordType RecordType { get; set; }
}

如果我在尝试创建索引时使用类似上面的内容,则会收到以下错误:

Message: "Property recordType has unsupported type Web.Search.WebSearchRecordType\r\nParameter name: propertyType"

最佳答案

Azure 搜索不支持枚举类型作为字段类型。相反,您需要自己在枚举和受支持的数据类型之一之间进行映射(整数或字符串,具体取决于您是否希望将标签或基础值存储在索引中)。实现此目的的一种方法是使用 [JsonIgnore] 标记您的枚举属性,然后实现所需字段类型的第二个属性,并在 getter/setter 中在它和枚举之间进行映射。请注意,您可以使用 [JsonProperty("...")] 属性控制属性名称如何映射到索引字段。

此外,您的模型类使用 Guid 作为键字段的类型。这也不支持。您可以使用相同的技术将自己的 Guid 属性映射到实际映射到相应索引字段的字符串属性。

关于c# - 在 Azure 搜索文档中使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44283283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com