Range Queryedit
Matches documents with fields that have terms within a certain range.
The type of the Lucene query depends on the field type, for string
fields, the TermRangeQuery, while for number/date fields, the query is
a NumericRangeQuery. The following example returns all documents where
age is between 10 and 20:
{
"range" : {
"age" : {
"gte" : 10,
"lte" : 20,
"boost" : 2.0
}
}
}The range query accepts the following parameters:
|
|
Greater-than or equal to |
|
|
Greater-than |
|
|
Less-than or equal to |
|
|
Less-than |
|
|
Sets the boost value of the query, defaults to |
Date optionsedit
When applied on date fields the range filter accepts also a time_zone parameter.
The time_zone parameter will be applied to your input lower and upper bounds and will
move them to UTC time based date:
{
"range" : {
"born" : {
"gte": "2012-01-01",
"lte": "now",
"time_zone": "+1:00"
}
}
}In the above example, gte will be actually moved to 2011-12-31T23:00:00 UTC date.
if you give a date with a timezone explicitly defined and use the time_zone parameter, time_zone will be
ignored. For example, setting gte to 2012-01-01T00:00:00+01:00 with "time_zone":"+10:00" will still use +01:00 time zone.
When applied on date fields the range query accepts also a format parameter.
The format parameter will help support another date format than the one defined in mapping:
{
"range" : {
"born" : {
"gte": "01/01/2012",
"lte": "2013",
"format": "dd/MM/yyyy||yyyy"
}
}
}