参考:http://cwiki.apachecn.org/pages/viewpage.action?pageId=4260599
curl -XGET "http://10.10.10.10:9200/te-file/_search" -u elastic:changeme -d'
{
"query":
{"range": {"ctime": {
"gte": "2019-01-01",
"lt": "2019-01-02" }
}}
}'|jq "."
通过某一个包含项的字段匹配文档。 Lucene 查询的类型取决于字段类型,对于 string (字符串字段),查询是一个 TermRangeQuery ,而对于 number / date 字段,查询是一个 NumericRangeQuery 。下面这个示例返回 age 在 10到 20 之间的所有文档。
范围查询接受以下参数:
参数
|
说明
|
---|---|
gte | 大于或等于 |
gt | 大于 |
lte | 小于或等于 |
lt | 小于 |
boost | 设置查询的 boost 值,默认为 1.0 |
Date math 和 rounding (四舍五入)
当使用 date math 将日期 round (四舍五入)到最近的日,月,小时等时,舍入日期取决于范围的结束是包含还是排除。
向上舍入移动到舍入范围的最后一个毫秒,并向下舍入到舍入范围的第一个毫秒。
例如:
参数
|
说明
|
---|---|
gt | 大于向上舍入的日期: 2014-11-18 || / M 变成 2014-11-30T23:59:59.999 ,即不包括整个月。 |
gte | 大于或等于向下舍入的日期: 2014-11-18 || / M 即成为 2014-11-01 ,即包括整个月。 |
lt | 小于向下舍入的日期: 2014-11-18 || / M 成为 2014-11-01 ,即不包括整个月。 |
lte | 小于或等于向上舍入的日期: 2014-11-18 || / M 成为 2014-11-30T23:59:59.999 ,即包括整个月。 |
Range (范围)查询中的时区
通过在日期值本身指定时区(如果 format 允许),日期可以从另一个时区转换为 UTC ,或者可以将其指定为 time_zone 参数:
①此日期将转换为 2014-12-31T23:00:00 UTC 。
② now 不受 time_zone 参数的影响(日期必须存储为UTC)。
没有评论:
发表评论