首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Elasticsearch,Mapping,Date Mapping问题

Elasticsearch,Mapping,Date Mapping问题
EN

Stack Overflow用户
提问于 2021-04-13 03:48:39
回答 2查看 83关注 0票数 0

我在使用日期字段类型的Elasticsearch时有一种奇怪的体验。我已经尝试了大约7-10种不同类型的格式,单数和多数,并逐字查看并遵循了Elasticsearch文档的当前版本,但我仍然收到相同的错误。下面是当前的代码片段:

代码语言:javascript
运行
复制
"<REDACTED>": {"type": "date", "format": "date_optional_time||strict_date_optional_time||yyyy-MM-dd'T'HH:mm:ss||yyyy-MM-dd HH:mm:ss||yyyy-MM-dd HH:mm:ss aa||yyyy-MM-dd HH:mm:ss||M/dd/yyyy HH:mm:ss aa||MM/dd/yyyy HH:mm:ss||MM/dd/yyyy HH:mm:ss aa||yyyy-MM-dd||epoch_millis"}

第四种格式: yyyy-MM-dd HH:mm:ss,根据我反复收到的错误信息,匹配我当前的数据格式:

错误: elasticsearch.exceptions.RequestError: RequestError(400,'mapper_parsing_exception',“无法在id为‘字段值的...Preview:'2021-03-27 22:46:08’的文档中解析类型为date的字段[]”)

有没有人能给点建议?我将非常感谢^___^

EN

回答 2

Stack Overflow用户

发布于 2021-04-13 05:26:54

Elasticsearch日期格式遵循不支持aaDateTimeFormatter spec --只有一个a来表示am/pm。

从映射中删除双a

代码语言:javascript
运行
复制
PUT my-index
{
  "mappings": {
    "properties": {
      "your_date_field": {
        "type": "date",
        "format": "date_optional_time||strict_date_optional_time||yyyy-MM-dd'T'HH:mm:ss||yyyy-MM-dd HH:mm:ss||yyyy-MM-dd HH:mm:ss a||yyyy-MM-dd HH:mm:ss||M/dd/yyyy HH:mm:ss a||MM/dd/yyyy HH:mm:ss||MM/dd/yyyy HH:mm:ss a||yyyy-MM-dd||epoch_millis"
      }
    }
  }
}

索引应该工作得很好:

代码语言:javascript
运行
复制
POST my-index/_doc
{
  "your_date_field": "2021-03-27 22:46:08"
}
票数 0
EN

Stack Overflow用户

发布于 2021-04-13 09:16:28

我发现了问题所在。python代码循环通过以前的日期戳格式进行检查,而不是用新的日期戳格式完全替换索引。一旦我通过删除旧的索引删除了错误的索引,代码就可以正常工作了。

关于aa,Joe Sorocin也是对的。Joda格式支持它,但只作为一个a,两个"a“不是必需的或正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67064804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档