elasticsearch,nest,jsonserializer,C#,elasticsearch,Nest,Jsonserializer" /> elasticsearch,nest,jsonserializer,C#,elasticsearch,Nest,Jsonserializer" />

C# 如何设置NullValueHandling。通过修改JsonSerializerSettings在嵌套客户端中包括JsonSerializerSettings

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

我正在做一个c#应用程序

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链接已失效。改用。