C# 如何设置NullValueHandling。通过修改JsonSerializerSettings在嵌套客户端中包括JsonSerializerSettings
我正在做一个c#应用程序C# 如何设置NullValueHandling。通过修改JsonSerializerSettings在嵌套客户端中包括JsonSerializerSettings,c#,elasticsearch,nest,jsonserializer,C#,elasticsearch,Nest,Jsonserializer,我正在做一个c#应用程序 var settings = new ConnectionSettings(node); settings.ModifyJsonSerializerSettings(new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Include }); var client = new ElasticClient(settings); 但是,它没有任何效果,在elasticsearch
var settings = new ConnectionSettings(node);
settings.ModifyJsonSerializerSettings(new JsonSerializerSettings()
{ NullValueHandling = NullValueHandling.Include });
var client = new ElasticClient(settings);
但是,它没有任何效果,在elasticsearch中,空字段没有索引
我的目标是设置序列化程序,使其包含对象中的所有空字段。还有别的办法吗 要在Elasticsearch中存储/索引空值,您需要修改映射以处理空值。根据 当字段有(JSON)空值时,使用空值作为字段值。默认为根本不添加字段 这意味着,如果要索引的文档中某个字段的值为空,除非在该字段的映射中设置了
null\u值
,否则elasticsearch不会将该字段添加到文档中。如何设置索引字段以接受空值的示例与上面文档链接中的示例类似。请参阅消息
字段
{
"tweet" : {
"properties" : {
"user" : {"type" : "string", "index" : "not_analyzed"},
"message" : {"type" : "string", "null_value" : "na"},
"postDate" : {"type" : "date"},
"priority" : {"type" : "integer"},
"rank" : {"type" : "float"}
}
}
}
这并不能解决我的问题。如果消息具有空值,则将存储的值为na。如果值为null且序列化程序设置为,则序列化的Json根本不会发送值。忽略添加属性
[JsonProperty(NullValueHandling=NullValueHandling.Include)]
可以解决问题,但我正在使用生成的DataContext对象,它将在将来重新生成。Elasticsearch.org链接已失效。改用。