mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 13:08:29 +00:00
873a45eaba
Filters and Queries now supports `time_zone` parameter which defines which time zone should be applied to the query or filter to convert it to UTC time based value. When applied on `date` fields the `range` filter and queries accept 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: [source,js] -------------------------------------------------- { "constant_score": { "filter": { "range" : { "born" : { "gte": "2012-01-01", "lte": "now", "time_zone": "+1:00" } } } } } { "range" : { "born" : { "gte": "2012-01-01", "lte": "now", "time_zone": "+1:00" } } } -------------------------------------------------- In the above examples, `gte` will be actually moved to `2011-12-31T23:00:00` UTC date. NOTE: if you give a date with a timezone explicitly defined and use the `time_zone` parameter, `time_zone` will be ignored. For example, setting `from` to `2012-01-01T00:00:00+01:00` with `"time_zone":"+10:00"` will still use `+01:00` time zone. Closes #3729.
56 lines
1.6 KiB
Plaintext
56 lines
1.6 KiB
Plaintext
[[query-dsl-range-query]]
|
|
=== Range Query
|
|
|
|
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`:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
{
|
|
"range" : {
|
|
"age" : {
|
|
"gte" : 10,
|
|
"lte" : 20,
|
|
"boost" : 2.0
|
|
}
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
|
|
The `range` query accepts the following parameters:
|
|
|
|
[horizontal]
|
|
`gte`:: Greater-than or equal to
|
|
`gt`:: Greater-than
|
|
`lte`:: Less-than or equal to
|
|
`lt`:: Less-than
|
|
`boost`:: Sets the boost value of the query, defaults to `1.0`
|
|
|
|
coming[1.4.0]
|
|
|
|
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:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
{
|
|
"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.
|
|
|
|
NOTE: if you give a date with a timezone explicitly defined and use the `time_zone` parameter, `time_zone` will be
|
|
ignored. For example, setting `from` to `2012-01-01T00:00:00+01:00` with `"time_zone":"+10:00"` will still use `+01:00` time zone.
|
|
|