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" } } }