elasticsearch 日期相减
时间: 2023-08-30 10:05:16 浏览: 63
在 Elasticsearch 中,我们可以使用日期格式化字符串和日期数学运算符来执行日期相减操作。
假设我们有两个日期字段 `date1` 和 `date2`,我们想要计算它们之间的时间差。我们可以使用以下查询来实现:
```
GET my_index/_search
{
"query": {
"script": {
"script": {
"source": "doc['date1'].date.millis - doc['date2'].date.millis > 86400000",
"lang": "painless"
}
}
}
}
```
在上面的查询中,我们使用了 `doc['date1'].date.millis` 和 `doc['date2'].date.millis` 来获取两个日期字段的毫秒级时间戳,并使用数学运算符 `-` 来计算它们之间的时间差。在这个例子中,我们检查时间差是否大于一天(86400000 毫秒)。
你还可以使用 `DateTimeFormatter` 类来解析日期格式化字符串,例如:
```
GET my_index/_search
{
"query": {
"script": {
"script": {
"source": "ChronoUnit.DAYS.between(LocalDate.parse(doc['date1'].value, DateTimeFormatter.ISO_DATE), LocalDate.parse(doc['date2'].value, DateTimeFormatter.ISO_DATE)) > 1",
"lang": "painless"
}
}
}
}
```
在上面的查询中,我们使用了 `LocalDate.parse` 方法来解析日期格式化字符串,并使用 `ChronoUnit.DAYS.between` 方法来计算两个日期之间的天数差。在这个例子中,我们检查时间差是否大于一天。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)