跳到主要内容

范围匹配 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"
}
}
}
}