Geo-Line Aggregation
Geo-Line Aggregation
The geo_line
aggregation aggregates all geo_point
values within a bucket into a LineString ordered by the chosen sort
field. This sort
can be a date field, for example. The bucket returned is a valid GeoJSON Feature representing the line geometry.
PUT test
{
"mappings": {
"dynamic": "strict",
"_source": {
"enabled": false
},
"properties": {
"my_location": {
"type": "geo_point"
},
"group": {
"type": "keyword"
},
"@timestamp": {
"type": "date"
}
}
}
}
POST /test/_bulk?refresh
{"index": {}}
{"my_location": {"lat":37.3450570, "lon": -122.0499820}, "@timestamp": "2013-09-06T16:00:36"}
{"index": {}}
{"my_location": {"lat": 37.3451320, "lon": -122.0499820}, "@timestamp": "2013-09-06T16:00:37Z"}
{"index": {}}
{"my_location": {"lat": 37.349283, "lon": -122.0505010}, "@timestamp": "2013-09-06T16:00:37Z"}
POST /test/_search?filter_path=aggregations
{
"aggs": {
"line": {
"geo_line": {
"point": {"field": "my_location"},
"sort": {"field": "@timestamp"}
}
}
}
}
Which returns:
{
"aggregations": {
"line": {
"type" : "Feature",
"geometry" : {
"type" : "LineString",
"coordinates" : [
[
-122.049982,
37.345057
],
[
-122.050501,
37.349283
],
[
-122.049982,
37.345132
]
]
},
"properties" : {
"complete" : true
}
}
}
}
Options
point
(Required)
This option specifies the name of the geo_point
field
Example usage configuring my_location
as the point field:
"point": {
"field": "my_location"
}
sort
(Required)
This option specifies the name of the numeric field to use as the sort key for ordering the points
Example usage configuring @timestamp
as the sort key:
"sort": {
"field": "@timestamp"
}
include_sort
(Optional, boolean, default: false
)
This option includes, when true, an additional array of the sort values in the feature properties.
sort_order
(Optional, string, default: "ASC"
)
This option accepts one of two values: “ASC”, “DESC”.
The line is sorted in ascending order by the sort key when set to “ASC”, and in descending with “DESC”.
size
(Optional, integer, default: 10000
)
The maximum length of the line represented in the aggregation. Valid sizes are between one and 10000.