支持以下范围类型:
| integer_range
| 32位有符号整型数范围。最小值是-231,最大值是231-1。
|
| float_range
| 单精度32位IEEE 754浮点值范围。 |
| long_range
| 64位有符号整型数范围。最小值是-263,最大值是263-1。
|
| double_range
| 双精度64位IEEE 754浮点值范围。 |
| date_range
| 以系统纪元经过的无符号64位整数毫秒表示的日期值范围。 |
以下是使用各种范围字段配置映射的示例,后跟跟踪多个范围类型的示例。
PUT range_index
{
"mappings": {
"my_type": {
"properties": {
"expected_attendees": {
"type": "integer_range"
},
"time_frame": {
"type": "date_range", #1
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
}
PUT range_index/my_type/1
{
"expected_attendees" : { #2
"gte" : 10,
"lte" : 20
},
"time_frame" : { #3
"gte" : "2015-10-31 12:00:00", #4
"lte" : "2015-11-01"
}
}
以下是date_range查询的一个例子,该日期字段名为“time_frame”。
POST range_index/_search
{
"query" : {
"range" : {
"time_frame" : { #5
"gte" : "2015-10-31",
"lte" : "2015-11-01",
"relation" : "within" #6
}
}
}
}
上述查询产生的结果。
{
"took": 13,
"timed_out": false,
"_shards" : {
"total": 2,
"successful": 2,
"failed": 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [
{
"_index" : "range_index",
"_type" : "my_type",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"expected_attendees" : {
"gte" : 10, "lte" : 20
},
"time_frame" : {
"gte" : "2015-10-31 12:00:00", "lte" : "2015-11-01"
}
}
}
]
}
}
| 1 | date_range类型接受由日期类型定义的相同字段参数。 | | 2 | 举办与10至20名与会者的会议举例。 | | 3 | 日期范围接受与date range queries(日期范围查询)中所述相同的格式。 | | 4 | 示例日期范围使用日期时间戳。 这也接受日期数学格式,或者系统时间的“now”。 | | 5 | Range queries(范围查询)与range query(范围查询)中所述相同。 | | 6 | 范围查询范围字段支持一个关系参数,可以是WITHIN,CONTAINS,INTERSECTS(默认)之一。 |
range字段接受一下参数:
| coerce
| 尝试将字符串转换为数字并截断整数的分数。 接受true(默认)和false。 |
| boost
| 映射字段级查询时间提升。 接受一个浮点数,默认为1.0。 |
| include_in_all
| 字段值是否应包含在_all字段中? 接受true或者false。 如果index设置为false,或者如果父对象字段将include_in_all设置为false,则默认为false。 否则默认为true。 |
| index
| 应该可以搜索该字段吗? 接受true(默认)和false。 |
| store
| 字段值是否应与_source字段分开存储和检索。 接受true或false(默认)。 |