首页 > 解决方案 > Azure 认知搜索和字典序列化问题

问题描述

我有一个包含字典的 C# 类(这只是该类的一行)

public Dictionary<string, double?> Resultat { get; set; }

当我创建索引时,我将其创建为复杂类型的集合

Collection(Edm.ComplexType)
   key (Edm.String)
   value (Edm.Double)

我使用 C# 本机库将文档发布到搜索索引,当我运行代码时,我会收到一条错误消息,指出它正在查找开始标记。我发现 Azure 认知搜索序列化程序将 Dictionary 转换为 json 类而不是 json 数组。

结果看起来有点像:

{
  "key1": "value1",
  "key2": "value2"
}

但认知搜索希望数据看起来像:

[
  {"key1":"value1"},
  {"key2":"value2"}
]

由于字典在计数和键(未知计数和未知键)中都是动态的,因此它不能将字段创建为 Edm.Complex 类型。

有没有办法将序列化程序指令发送到认知搜索以将字典序列化为数组而不是对象?还有其他解决方案吗?

标签: azure-cognitive-search

解决方案


推荐阅读