如何在Elasticsearch中将纳秒级Epoch时间戳索引为date/date_nanos?
解决Elasticsearch纳秒级Epoch时间戳映射问题
直接给可行的映射方案:用date_nanos类型并指定format为epoch_nanos,就能让ES正确识别纳秒级时间戳,示例映射如下:
PUT /your_index_name { "mappings": { "properties": { "created_at": { "type": "date_nanos", "format": "epoch_nanos" } } } }
为什么之前的映射出问题?
- 用
date_nanos但没指定format时,ES无法自动识别这是纳秒级时间戳,所以直接显示原始整数值; - 用
date类型时,ES默认把数值当作毫秒级时间戳处理,你的纳秒数相当于把实际时间放大了100万倍,自然会得到超远期的错误日期。
额外说明
即使你只需要毫秒或秒精度的结果,这个映射也能正常工作——ES会自动解析出完整的日期时间,你可以在查询或展示时按需截断精度,完全不影响数据的存储和检索。
内容的提问来源于stack exchange,提问作者Gabriel R.
相关产品推荐
相关产品推荐

