Range 查询(范围查询)
通过某一个包含项的字段匹配文档。 Lucene查询的类型取决于字段类型,对于string (字符串字段),查询是个TermRangeQuery,而对于number / date字段,查询是一个 NumericRangeQuery 。下面这个示例返回age在10到20之间的所有文档。
范围查询接受以下参数:
参数
说明
gte
大于或等于
gt
大于
lte
小于或等于
lt
小于
boost
设置查询的boost值,默认为1.0
date (日期)字段的范围查询
对类型为date(日期)的字段运行range (范围)查询时,可以使用“Date Math”部分指定范围:
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(格式)解析date(日期)字段,但可以通过将格式参数传递到range (范围)查询来覆盖默认格式:
Range (范围)查询中的时区
通过在日期值本身指定时区(如果format允许),日期可以从另一个时区转换为UTC,或者可以将其指定为time_zone参数:
①此日期将转换为2014-12-31T23:00:00 UTC。
② now不受time_zone参数的影响(日期必须存储为UTC)。
Last updated