带有弹性搜索的“无效的日期时间格式。值:2020-01-07 11:46:44”

时间:2020-01-07 17:45:36

标签: c# elasticsearch 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插入不带映射的数据,就象“ 2019-07-04T05:53:00,544”一样,我没有任何问题。< / p>

如果我使用nest,我不能使用自定义日期格式吗?

1 个答案:

答案 0 :(得分:0)

所以我不知道为什么我不能使用自定义dateFormat,但是我已经在所有地方都将格式更改为时间基本格式,并且现在可以使用了。我仍然不明白为什么它不能像以前那样起作用,但是我想你不能或者我错过了某个地方。