Elasticsearch filter date类型范围查询
时间: 2023-12-23 16:04:36 浏览: 186
在 Elasticsearch 中,要过滤日期类型的数据,可以使用 range 查询。range 查询允许您查询一个范围内的值。
下面是一个范围查询的示例,查询一个日期字段在 2021 年 1 月 1 日到 2021 年 12 月 31 日之间的文档:
```
GET /my_index/_search
{
"query": {
"range": {
"date_field": {
"gte": "2021-01-01",
"lte": "2021-12-31"
}
}
}
}
```
上面的查询使用了 `range` 查询,并指定了 `date_field` 字段和日期范围。其中,`gte`(大于等于)表示范围的起始日期,`lte`(小于等于)表示范围的结束日期。
您也可以使用 `gt`(大于)、`lt`(小于)和其他参数来定义不同的范围条件。例如,下面的查询将查找 2021 年 1 月 1 日之后的文档:
```
GET /my_index/_search
{
"query": {
"range": {
"date_field": {
"gt": "2021-01-01"
}
}
}
}
```
如果您希望查询日期类型字段中的时间范围,可以使用日期时间格式。例如,下面的查询将查找 2021 年 1 月 1 日 00:00:00 到 2021 年 1 月 1 日 23:59:59 之间的文档:
```
GET /my_index/_search
{
"query": {
"range": {
"date_time_field": {
"gte": "2021-01-01T00:00:00",
"lte": "2021-01-01T23:59:59"
}
}
}
}
```
请注意,日期时间格式必须遵循 ISO 8601 标准。
阅读全文