我有以下json:
Order {
"creationDate" : 1441108800000,
"expiryDate" : 253402300799000
}
在创建Java对象时,我使用Instant(例如Instant.now()设置创建日期)来设置创建和到期日期。当我使用spring数据和jackson依赖关系将其序列化到沙发数据库时,我得到了上面的json。这些文档被复制到弹性文件中以进行搜索。
弹性能够搜索这些类型的日期吗?例如搜索可能是过期的订单?它可以处理日期转换等吗?
如果这不是存储日期时间的最佳方法,请建议一种更好的方法来处理日期时间要求,通常考虑时区,春季沙发床序列化和使用弹性搜索进行搜索。
答案 0 :(得分:0)
如果您计划在Couchbase中使用N1QL查询语言的日期/时间操作功能,建议您使用人类可读的日期/时间戳,例如2006-01-02T15:04:05.999+00:00
。它们是这些功能的最佳搭配。而且在其他环境中也广泛支持这种格式。
答案 1 :(得分:0)
这对我有用:
我存储日期的时间长于发现比较容易和仅在UI上显示时才对它进行数学运算的时间,我将其按时区转换为人类可读的形式。我们可以通过调用Instant.toEpochMilli()在Java中获得它。 Spring数据在序列化和反序列化方面没有问题,并且弹性搜索具有Date数据类型,我们可以在定义文档映射时进行设置。