range-query.asciidoc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. [[query-dsl-range-query]]
  2. === Range Query
  3. Matches documents with fields that have terms within a certain range.
  4. The type of the Lucene query depends on the field type, for `string`
  5. fields, the `TermRangeQuery`, while for number/date fields, the query is
  6. a `NumericRangeQuery`. The following example returns all documents where
  7. `age` is between `10` and `20`:
  8. [source,js]
  9. --------------------------------------------------
  10. {
  11. "range" : {
  12. "age" : {
  13. "gte" : 10,
  14. "lte" : 20,
  15. "boost" : 2.0
  16. }
  17. }
  18. }
  19. --------------------------------------------------
  20. The `range` query accepts the following parameters:
  21. [horizontal]
  22. `gte`:: Greater-than or equal to
  23. `gt`:: Greater-than
  24. `lte`:: Less-than or equal to
  25. `lt`:: Less-than
  26. `boost`:: Sets the boost value of the query, defaults to `1.0`
  27. coming[1.4.0]
  28. When applied on `date` fields the `range` filter accepts also a `time_zone` parameter.
  29. The `time_zone` parameter will be applied to your input lower and upper bounds and will
  30. move them to UTC time based date:
  31. [source,js]
  32. --------------------------------------------------
  33. {
  34. "range" : {
  35. "born" : {
  36. "gte": "2012-01-01",
  37. "lte": "now",
  38. "time_zone": "+1:00"
  39. }
  40. }
  41. }
  42. --------------------------------------------------
  43. In the above example, `gte` will be actually moved to `2011-12-31T23:00:00` UTC date.
  44. NOTE: if you give a date with a timezone explicitly defined and use the `time_zone` parameter, `time_zone` will be
  45. 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.