在弹性搜索索引中将日期值存储为“长”而不是“日期”

时间:2019-02-13 07:00:28

标签: elasticsearch

我有一个Elastic-Search索引,其中存储了带有“ createdTime”字段的产品,该字段表示何时添加文档/产品,目前我将“ createdTime”保存为“ Long”而不是“ Date”,并且在该字段中存储从纪元开始的毫秒数,我的问题是将“ createdTime”存储为“ Long”而不是“ Date”使排序或任何此类操作变慢。

ES版本:2.4.1

1 个答案:

答案 0 :(得分:0)

是的,Long更快,但让Elastic处理

内部,具有 Date数据类型的字段存储为长。 以下是Elastic Docs的摘录:

  

在内部,日期会转换为UTC(如果指定了时区),并存储为一个整数,表示自纪元以来的毫秒数

将日期存储为长数据类型需要您自己进行额外的处理。 此外,您失去了查看日期字段(如日期)的能力。为了易于使用,长时间约会不正确。

如果使用Date数据类型,elastic会将字段以其长值存储在其倒排索引中。但是,在将其取回给您之前,它将转换为可见的日期格式。

因此,只需使用Date数据类型。