gpt4 book ai didi

c# - 如何通过 ModifyJsonSerializerSettings 在 NEST 客户端中设置 NullValueHandling.Include JsonSerializerSettings

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:52 25 4
gpt4 key购买 nike

在我正在做的 C# 应用程序中

var settings = new ConnectionSettings(node);
settings.ModifyJsonSerializerSettings(new JsonSerializerSettings()
{ NullValueHandling = NullValueHandling.Include });
var client = new ElasticClient(settings);

但是它没有任何效果,空字段不会在 elasticsearch 中建立索引。

我的目标是设置序列化程序,使其包含对象中的所有空字段。还有其他方法吗?

最佳答案

要在 Elasticsearch 中存储/索引空值,您需要修改映射以处理空值。根据Mapping Core Types documentation

When there is a (JSON) null value for the field, use the null_value as the field value. Defaults to not adding the field at all.

这意味着如果您正在索引的文档中的某个字段存在空值,除非在该字段的映射中设置了 null_value,否则 elasticsearch 不会将该字段添加到文档中。如何设置索引字段以接受空值的示例就像来自上述文档链接的示例。查看 message 字段...

 {
"tweet" : {
"properties" : {
"user" : {"type" : "string", "index" : "not_analyzed"},
"message" : {"type" : "string", "null_value" : "na"},
"postDate" : {"type" : "date"},
"priority" : {"type" : "integer"},
"rank" : {"type" : "float"}
}
}
}

关于c# - 如何通过 ModifyJsonSerializerSettings 在 NEST 客户端中设置 NullValueHandling.Include JsonSerializerSettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289118/

25 4 0