使用Elasticsearch Nest客户端和Utf8Json序列化器时如何捕获与任何POCO属性都不匹配的JSON数据的剩余部分

问题描述

我正在使用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; }

还是有可能弹性客户端处理它并以某种方式通知我某些数据与POCO属性不匹配?

解决方法

客户端中没有此功能。

这些选项定义了POCO来表示文档,或者使用可以处理任意JSON结构的类型,例如使用JsonNetSerializerJObject来表示文档。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...