我正在使用C#Elastic Nest客户端从Elasticsearch检索数据。我创建了一个名为IndexModel的POCO类,该类对应于我的“测试索引”索引的索引映射。我使用以下搜索方法从索引中获取所有数据:
var result = client.Search<IndexModel>(s => s
.Index("testing-index")
.MatchAll());
但是,我也希望能够收集未能成功映射到任何POCO属性的json数据,例如当索引映射更改时。我知道Nest将Utf8Json用作Json序列化器,但是我找不到在System.Text.Json.Serialization中是否有可能在某些字典上方添加数据注释,以捕获所有溢出的json数据。像这样吗[JsonExtensionData]
public Dictionary<string, object> ExtensionData { get; set; }
还是有可能 flex 客户端处理它并以某种方式通知我某些数据与POCO属性不匹配? 最佳答案
客户端中没有此功能。
选项是定义POCO来表示文档,或者使用可以处理任意JSON结构的类型,例如使用 JsonNetSerializer
和JObject
来表示文档。