范围匹配 range
查询指定范围内的文档。以下示例返回年龄在 10 到 20 之间的所有文档:
GET _search
{
"query": {
"range" : {
"age" : {
"gte" : 10,
"lte" : 20
}
}
}
}
范围查询接受以下参数:
操作 | 描述 |
---|---|
gte | 大于等于 |
gt | 大于 |
lte | 小于等于 |
lt | 小于 |
日期字段的范围查询
在日期类型的字段上运行范围查询时,可以使用 Date Math 指定范围:
GET _search
{
"query": {
"range" : {
"date" : {
"gte" : "now-1d/d",
"lt" : "now/d"
}
}
}
}
日期字段范围查询 - Date Format
默认情况下,格式化日期将使用日期字段上指定的格式进行解析,但可以通过将格式参数传递给范围查询来覆盖它:
GET _search
{
"query": {
"range" : {
"born" : {
"gte": "01/01/2012",
"lte": "2013",
"format": "dd/MM/yyyy||yyyy"
}
}
}
}
日期字段范围查询 - 指定时区
GET _search
{
"query": {
"range" : {
"timestamp" : {
"gte": "2015-01-01T00:00:00",
"lte": "now",
"time_zone": "+01:00"
}
}
}
}