我想使用Newtonsoft的IsoDateTimeConverter来格式化我的DateTime属性的json版本。
但是,我无法弄清楚在Nest 2.x中是如何完成的。
这是我的代码:
var connectionPool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
var settings = new ConnectionSettings(connectionPool, s => new MyJsonNetSerializer(s));
var client = new ElasticClient(settings);
public class MyJsonNetSerializer : JsonNetSerializer
{
public MyJsonNetSerializer(IConnectionSettingsValues settings) : base(settings) { }
protected override void ModifyJsonSerializerSettings(JsonSerializerSettings settings)
{
settings.NullValueHandling = NullValueHandling.Ignore;
}
protected override IList<Func<Type, JsonConverter>> ContractConverters => new List<Func<Type, JsonConverter>>()
{
type => new Newtonsoft.Json.Converters.IsoDateTimeConverter()
};
}
我收到此异常:
message: "An error has occurred.",
exceptionMessage: "Unexpected value when converting date. Expected DateTime or DateTimeOffset, got Nest.SearchDescriptor`1[TestProject.DemoProduct].",
exceptionType: "Elasticsearch.Net.UnexpectedElasticsearchClientException"
任何帮助表示赞赏
使用Func<Type, JsonConverter>
,您需要检查类型是否是您要注册的转换器的正确类型;如果是,则返回转换器实例,否则返回null
public class MyJsonNetSerializer : JsonNetSerializer
{
public MyJsonNetSerializer(IConnectionSettingsValues settings) : base(settings) { }
protected override void ModifyJsonSerializerSettings(JsonSerializerSettings settings)
{
settings.NullValueHandling = NullValueHandling.Ignore;
}
protected override IList<Func<Type, JsonConverter>> ContractConverters => new List<Func<Type, JsonConverter>>()
{
type =>
{
return type == typeof(DateTime) ||
type == typeof(DateTimeOffset) ||
type == typeof(DateTime?) ||
type == typeof(DateTimeOffset?)
? new Newtonsoft.Json.Converters.IsoDateTimeConverter()
: null;
}
};
}
IsoDateTimeConverter
默认情况下,NEST 对这些类型使用,因此除非您要更改转换器上的其他设置,否则无需为它们注册转换器。
本文向大家介绍Python3.x中自定义比较函数,包括了Python3.x中自定义比较函数的使用技巧和注意事项,需要的朋友参考一下 在Python3.x的世界里,cmp函数没有了。那么sorted,min,max等需要比较函数作为参数的函数该如何用呢? 以min函数的定义为例,有两种重载形式: 单参数(一个迭代器): 多参数(多个待比较内容): 本文主要讨论key=func参数的使用 。举例说明吧
我有两个独立的条形图,但我希望两者都有相同的X轴位置。也就是说,我需要两个水平轴在相同的高度。 两个图表具有相同的高度,使用属性: < li >图表 软件:SSRS 2008R2(Microsoft报告服务) 提前感谢。
我目前正在使用spring cloud sleuth依赖项进行spring webflux项目。 我正在开发一组API,这些API可以获得包含3个字符串的请求负载。我想连接这3个字符串作为我的自定义跟踪id。我还想达到以下要求。 这个自定义跟踪id应该能够添加到每个日志中。(我们通过在log4j.xml文件中添加以打印所有日志中的traceId来获取日志中的sleuth跟踪id) 注意,sprin
我正在将一个应用程序从weblogic迁移到jboss7。1和ejb2。0到ejb3。应用程序正在使用jndi名称进行ejb查找。 有人能帮我找出如何配置我的自定义jndi名称与ejb3.0和jboss 7.1。 我在网上读到,在Jboss 7.1中没有jndi-name的概念。如果是真的。有人能让我知道我如何查找这个jndi名字,得到jboss注册的ejbs在ejb-jar.xml
null 在看了一些帖子之后,我明白了自定义函数在使用之前需要注册,因此创建了以下类: 更新了hibernate.cfg.xml,使用了: 我似乎不明白registerFunction应该如何操作,因为im收到以下错误:ERROR sqlexceptionhelper:142-'fn_workdays'不是可识别的函数名。 log4j2.xml 任何帮助解决上述问题将非常感谢。