java - 弹性日期:日期以对象格式存储为 OffsetDateTime
问题描述
我以下列方式索引到弹性的数据是来自 Java 的 OffsetDateTime。
Timestamp closedDate = resultSet.getTimestamp("closedon");
org.threeten.bp.OffsetDateTime offsetDate= Instant.ofEpochMilli(closedDate.toInstant().toEpochMilli())
.atOffset(ZoneOffset.UTC)
我将此 offsetDate 存储到弹性中,它转换为以下内容..
"closedDate": {
"dateTime": {
"date": {
"year": 2020,
"month": 6,
"day": 15
},
"time": {
"hour": 11,
"minute": 26,
"second": 1,
"nano": 37000000
}
}
我想使用像下面这样简单的东西来查询它,但它不起作用,因为格式都不同。如何更改被索引的数据的格式?
{
"range": {
"closedDate": {
"gte": "2021-05-22T00:00:00.000Z",
"lte": "2021-02-01T00:00:00.000Z",
"format": "strict_date_optional_time"
}
}
}
映射:
"closedOn": {
"properties": {
"dateTime": {
"properties": {
"date": {
"properties": {
"day": {
"type": "long"
},
"month": {
"type": "long"
},
"year": {
"type": "long"
}
}
},
"time": {
"properties": {
"hour": {
"type": "long"
},
"minute": {
"type": "long"
},
"nano": {
"type": "long"
},
"second": {
"type": "long"
}
}
}
}
},
解决方案
是的,索引映射错误,我使用了一个 json 序列化程序,在映射为“类型”:“日期”后它现在可以正常工作。
谢谢萨希尔·古普塔。
推荐阅读
- nic - 对于 XDP-eBPF 上的 ipv6-Srv6 数据包,rx_queue_index 始终返回值 1
- python - 在python中的格式化方法中使用大写方法
- python-3.x - 将所有嵌套的 xml InfoTables 转换为 Python 字典
- java - 如何从firebase数据库中以文本形式显示我的数据实时我的代码和我的XML在
- php - 字符串语法 - 代码中出现 PHP 意外的 'if' (T_IF)
- webserver - 我在 Windows10 上安装了“本地”,然后将其卸载....为什么仍然有这么多“虚构大学”的实例在运行?
- node.js - NodeJS selenium-driver geckodriver 普通 Firefox
- flutter - 如何将红色星号符号添加到颤动的文本格式中
- javascript - 变量和对象在部署时出现未定义错误
- android - Android 受信任的 Web 应用程序:将对象(不是字符串)从 Java 传递到 TWA