elasticsearch日期类型映射冲突

时间:2019-03-07 02:19:48

标签: elasticsearch

我有一个索引,其中包含一个用于存储日期信息的字段。此字段目前存在冲突。据我所知,有三种值:

  • 某些文档没有该字段
  • 某些文档的JSON中具有以下字段:
    • “时间戳记”:“ 2019-03-01T23:32:28Z”
  • 其他文档在JSON中具有如下字段:
    • “时间戳记”:“ 1551206688760”

我想解决冲突。

我尝试进行通配符搜索,但出现以下错误:

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

最终我有两个问题。

1)核心问题是否引起冲突,当我尝试在epoch_mill中表示时间戳时,我使用的是字符串而不是数字? IOW,"timestamp": 1551206688760会很好吗?

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

1 个答案:

答案 0 :(得分:1)

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

  1. 创建新索引with date mapping以提供多种格式
  

“ format”:“ yyyy-MM-dd HH:mm:ss || yyyy-MM-dd || epoch_millis”

  1. Reindex您的数据
  2. 使用aliases