原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/range.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/range.html
本地英文版地址: ../en/range.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
支持以下几种范围类型:
|
|
32位整数范围,最小值为 |
|
|
单精度32位 IEEE 754 浮点值范围。 |
|
|
64位有符号整数,最小值为 |
|
|
64位双精度 IEEE 754 浮点值范围。 |
|
|
自系统纪元以来,以无符号64位整数毫秒表示的日期值范围。 |
|
|
下面是一个使用各种范围字段配置映射的示例,后面是一个索引多个范围类型的示例。
PUT range_index
{
"settings": {
"number_of_shards": 2
},
"mappings": {
"properties": {
"expected_attendees": {
"type": "integer_range"
},
"time_frame": {
"type": "date_range",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
PUT range_index/_doc/1?refresh
{
"expected_attendees" : {
"gte" : 10,
"lte" : 20
},
"time_frame" : {
"gte" : "2015-10-31 12:00:00",
"lte" : "2015-11-01"
}
}
|
|
|
|
为10~20名与会者的会议编制索引的示例。 |
|
|
日期范围接受与日期范围查询中所述相同的格式。 |
|
|
使用日期时间戳的日期范围示例。 还可以接受date math格式。 请注意,在索引时不能使用“now”。 |
以下是对名为“expected_attendees”的integer_range字段进行term 查询的示例。
GET range_index/_search
{
"query" : {
"term" : {
"expected_attendees" : {
"value": 12
}
}
}
}
上述查询产生的结果:
{
"took": 13,
"timed_out": false,
"_shards" : {
"total": 2,
"successful": 2,
"skipped" : 0,
"failed": 0
},
"hits" : {
"total" : {
"value": 1,
"relation": "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "range_index",
"_type" : "_doc",
"_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"
}
}
}
]
}
}
下面是对名为“time_frame”的date_range字段进行date_range查询的示例:
GET range_index/_search
{
"query" : {
"range" : {
"time_frame" : {
"gte" : "2015-10-31",
"lte" : "2015-11-01",
"relation" : "within"
}
}
}
}
该查询产生类似的结果:
{
"took": 13,
"timed_out": false,
"_shards" : {
"total": 2,
"successful": 2,
"skipped" : 0,
"failed": 0
},
"hits" : {
"total" : {
"value": 1,
"relation": "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "range_index",
"_type" : "_doc",
"_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"
}
}
}
]
}
}
除了上述范围格式,IP 范围还可以用CIDR符号表示:
PUT range_index/_mapping
{
"properties": {
"ip_whitelist": {
"type": "ip_range"
}
}
}
PUT range_index/_doc/2
{
"ip_whitelist" : "192.168.0.0/16"
}