当前位置: 首页 > 面试题库 >

Elasticsearch映射中的自定义日期格式

云欣嘉
2023-03-14
问题内容

我正在尝试使用日期格式索引数据Tue May 14 17:06:01 PDT 2013。如Elasticsearch
日期格式文档中所述,我需要使用自定义日期格式。我指的是DateTimeFormat文档,并且各自的格式是E M d H:m:s z Y

我能够创建映射,但是当我尝试索引数据时会给我错误。

对应:

{
  "tweet": {
    "properties": {
      "user": {
        "type": "string",
        "index": "not_analyzed"
      },
      "message": {
        "type": "string",
        "null_value": "na"
      },
      "postDate": {
        "type": "date",
        "format": "E M d H:m:s z Y"
      },
      "priority": {
        "type": "integer"
      },
      "rank": {
        "type": "float"
      }
    }
  }
}

索引文件:

curl -XPUT 'http://localhost:9200/tweets/tweet/1' -d '{
        "user" : "kimchy",
        "message" : "This is a tweet!",
        "postDate" : "Tue May 14 17:06:01 PDT 2013",
        "priority" : 4,
        "rank" : 12.3
}'

错误:-

{"error":"MapperParsingException[failed to parse [postDate]]; 
nested: MapperParsingException[failed to parse date field [Tue May 14 17:06:01 PDT 2013],
tried both date format [E M d H:m:s z Y], and timestamp number with locale []];
nested: IllegalArgumentException[Invalid format: \"Tue May 14 17:06:01 PDT 2013\"
is malformed at \"May 14 17:06:01 PDT 2013\"]; ","status":400}

有什么建议吗?


问题答案:

本月使用三个“ M”。引用API文档:

月:3岁或以上,请使用文字,否则请使用数字。

因此,您提供的输入的正确映射应为:

    "postDate": {
      "type": "date",
      "format": "E MMM d H:m:s z Y"
    }


 类似资料:
  • 我有一个来自API的日期格式,如下所示: 即YYYY-DD-MM HH:MM AM/PM GMT时间戳。我正在将这个值映射到POJO中的日期变量。显然,它显示转换错误。 我想知道两件事: 我需要使用什么格式来与Jackson进行转换?日期是一个很好的字段类型吗? 一般来说,在Jackson将变量映射到对象成员之前,有没有一种方法可以处理这些变量?例如,更改格式、计算等

  • 问题内容: 我有一个来自API的Date格式,如下所示: 这是YYYY-DD-MM HH:MM am / pm GMT时间戳。我将此值映射到POJO中的Date变量。显然,其显示转换错误。 我想知道两件事: 与Jackson进行转换时,我需要使用哪种格式?Date是否适合此字段类型? 通常,是否有一种方法可以在Jackson将变量映射到Object成员之前处理这些变量?诸如更改格式,计算等。 问题

  • 问题内容: 我有来自API的Date格式,如下所示: 这是YYYY-DD-MM HH:MM am / pm GMT时间戳。我将此值映射到POJO中的Date变量。显然,其显示转换错误。 我想知道两件事: 与Jackson进行转换时,我需要使用哪种格式?Date是否适合此字段类型? 通常,是否有一种方法可以在Jackson将变量映射到Object成员之前对其进行处理?诸如更改格式,计算等。 问题答案

  • 以下是我的上下文:我使用byteBuddy动态生成一个类,该类根据外部配置将一个对象转换为另一个对象。我遇到了一些问题,我想找到一个替代方案,这就是我发现MapStruct的方式。 因此,我试图构建简单的映射器,我想知道是否有可能自定义注释以添加转换函数。例如,我想要: 在mapper实现中,我会有如下内容: 如果有人能帮我做到这一点,我将不胜感激,这将节省我很多时间。 提前谢谢。

  • 我一直在研究GraphQL作为我的一些RESTAPI的替代品,虽然我认为我已经对基本知识了如指掌,就像我目前看到的大多数内容一样,但似乎缺少了一个重要的功能。 比如说,我有一系列这样的物品: 应用程序需要所有这些对象的映射,按ID索引: 我写过的每个API都能够以这样的格式返回结果,但我正在努力寻找一种用GraphQL来做到这一点的方法。我一直在运行第101个问题,但这更多地涉及未知模式。就我而言

  • 问题内容: 我在课堂上有以下财产: 通过ES中的以下映射 我想进行汇总以返回按“星期几”分组的所有数据,即“星期一”,“星期二” …等 我知道我可以在聚合调用中使用“脚本”来执行此操作,但是,据我了解,如果有很多文档,使用脚本不会对性能产生不小的影响。 有没有一种方法可以用“子属性”映射属性。即我可以用一个字符串: 全部具有代码中类的单个属性。 我可以做一些类似的事情来分别存储“完整日期”,然后分