java - elasticsearch 是否支持对序列化的 java.time.Instant 字段进行搜索和报告?
问题描述
我有以下 json :
Order {
"creationDate" : 1441108800000,
"expiryDate" : 253402300799000
}
在创建 java 对象时,我使用 Instant(例如 Instant.now() 来设置创建日期)来设置创建日期和到期日期。当我使用 spring 数据和 jackson 依赖项将其序列化到 couchbase 数据库中时,我得到了上面的 json。这些文档被复制到弹性中以进行搜索。
弹性能够搜索这些类型的日期吗?例如,搜索可能是过期订单?它可以处理日期转换等吗?
如果这不是存储日期时间的最佳方式,请建议一个更好的方法来处理日期时间要求,一般考虑时区、弹簧沙发基础序列化和使用弹性搜索进行搜索。
解决方案
这对我有用:
我存储日期,只要我发现比较容易,并且仅在 UI 中显示时对其进行数学计算,我根据时区将其转换为人类可读的形式。我们可以通过调用instant.toEpochMilli() 在java 中得到它。Spring 数据在序列化和反序列化方面没有问题,并且弹性搜索有一个 Date 数据类型,我们可以在为我们的文档定义映射时设置它。
推荐阅读
- xcode - 使用不同的 Xcode-select 值同时构建 Xcode 命令行
- c# - 时间:2019-04-01 标签:c#chatclientwithsocketio
- python-2.7 - 如何在 Python 中创建包含今天日期的列
- c++ - 显示opencv矩阵时出现内存错误
- javascript - 选择元素的选项属性在 vue.js 2.0 中不起作用
- angular - 通过 *ngFor 打印的角度更新数组
- hibernate - 为什么我的 MariaDB 序列会生成一个负数?
- vue.js - 类更改属性的转换
- ssrs-2012 - SSRS 工具提示未显示
- azure-ad-b2c - Microsoft.Identity.Client 返回格式错误的结果