Elasticsearch日期类型映射冲突



我有一个索引,该索引带有我正在存储日期信息的字段。目前该字段正在冲突中。据我所知,有三种价值:

  • 一些文档没有字段
  • 一些文档在JSON中具有这样的字段:
    • "时间戳":" 2019-03-01T23:32:28Z"
  • 其他文档在JSON中具有这样的字段:
    • "时间戳":" 1551206688760"

我想解决冲突。

我尝试进行通配符搜索,并且会收到以下错误:

failed to parse date field [*] with format [strict_date_optional_time||epoch_millis]

我有两个问题,最终。

1)核心问题是否导致冲突,当我试图代表epoch_millis中的时间戳时,我使用了字符串而不是数字?IOW,"timestamp": 1551206688760会很好吗?

2)在不简单地将所有数据扔掉的情况下解决此问题的正确方法是什么?

不幸的是,您需要重新索引。

  1. 创建使用日期映射的新索引以提供多种格式

"格式":" yyyy-mm-dd HH:mm:ss || yyyy-mm-dd || epoch_millis"

  1. Reindex您的数据
  2. 使用别名

最新更新