"Invalid datetime format. value:2020-01-07 11:46:44" 使用弹性搜索
"Invalid datetime format. value:2020-01-07 11:46:44" with elasticsearch
我在尝试从 elasticsearch 检索信息时遇到问题。
当我做一个简单的查询时:
var searchResponse = client.Search<injectedData>(s => s.MatchAll());
我发现一个 invalid datetime format. value:2020-01-07 11:46:44
作为错误
我不明白的是我在序列化DateTime时指定了确切的格式
public class MyDateTimeConverter : IsoDateTimeConverter
{
public MyDateTimeConverter()
{
DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
}
}
class injectedData
{
public String Id { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime process_start_time { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime item_start_time { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime item_end_time { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime end_time { get; set; }
public long process_execution_duration { get; set; }
public int metadata_type { get; set; }
public String machine { get; set; }
public String windows_session { get; set; }
public String proces_name { get; set; }
public String item { get; set; }
}
映射看起来像这样
{
"properties": {
"process_start_time": {
"type": "date",
"format":"yyyy-MM-dd HH:mm:ss"
},
"item_start_time": {
"type": "date",
"format":"yyyy-MM-dd HH:mm:ss"
},
"item_end_time": {
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss"
},
"end_time": {
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss"
}
}
}
我似乎无法理解问题出在哪里。有人有想法吗?
更新 14:01:2020
所以看起来,如果我在没有映射的情况下以基本时间格式 yyyyDDD'T'HHmmss.SSSZ "Like this "2019-07-04T05:53:00,544 插入数据,我不会有任何问题。
如果我使用 nest,我不能使用自定义日期格式吗?
所以我不知道为什么我不能使用自定义日期格式,但我已经将格式更改为所有地方的时间基本格式,现在可以使用了。我仍然不明白为什么它没有像我以前那样工作,但我想你不能或者我错过了什么地方。
我在尝试从 elasticsearch 检索信息时遇到问题。
当我做一个简单的查询时:
var searchResponse = client.Search<injectedData>(s => s.MatchAll());
我发现一个 invalid datetime format. value:2020-01-07 11:46:44
作为错误
我不明白的是我在序列化DateTime时指定了确切的格式
public class MyDateTimeConverter : IsoDateTimeConverter
{
public MyDateTimeConverter()
{
DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
}
}
class injectedData
{
public String Id { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime process_start_time { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime item_start_time { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime item_end_time { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime end_time { get; set; }
public long process_execution_duration { get; set; }
public int metadata_type { get; set; }
public String machine { get; set; }
public String windows_session { get; set; }
public String proces_name { get; set; }
public String item { get; set; }
}
映射看起来像这样
{
"properties": {
"process_start_time": {
"type": "date",
"format":"yyyy-MM-dd HH:mm:ss"
},
"item_start_time": {
"type": "date",
"format":"yyyy-MM-dd HH:mm:ss"
},
"item_end_time": {
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss"
},
"end_time": {
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss"
}
}
}
我似乎无法理解问题出在哪里。有人有想法吗?
更新 14:01:2020
所以看起来,如果我在没有映射的情况下以基本时间格式 yyyyDDD'T'HHmmss.SSSZ "Like this "2019-07-04T05:53:00,544 插入数据,我不会有任何问题。
如果我使用 nest,我不能使用自定义日期格式吗?
所以我不知道为什么我不能使用自定义日期格式,但我已经将格式更改为所有地方的时间基本格式,现在可以使用了。我仍然不明白为什么它没有像我以前那样工作,但我想你不能或者我错过了什么地方。