Агрегация Geo-Line
Агрегация geo_line агрегирует все geo_point значения в корзине в упорядоченную по выбранному полю sort линию. Это sort поле, например, может быть датой. Возвращаемая корзина — это корректный GeoJSON-объект Feature, представляющий геометрию линии.
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"}
}
}
}
} Что возвращает:
{
"aggregations": {
"line": {
"type" : "Feature",
"geometry" : {
"type" : "LineString",
"coordinates" : [
[
-122.049982,
37.345057
],
[
-122.050501,
37.349283
],
[
-122.049982,
37.345132
]
]
},
"properties" : {
"complete" : true
}
}
}
} Параметры
-
point - (Обязательно)
Этот параметр задаёт имя поля geo_point.
Пример использования my_location в качестве поля точек:
"point": {
"field": "my_location"
} -
sort - (Обязательно)
Этот параметр задаёт имя числового поля, используемого в качестве ключа сортировки для упорядочивания точек.
Пример использования @timestamp в качестве ключа сортировки:
"sort": {
"field": "@timestamp"
} -
include_sort - (Необязательно, логическое значение, по умолчанию:
false)
Если значение равно true, этот параметр включает дополнительный массив значений сортировки в свойствах объекта Feature.
-
sort_order - (Необязательно, строка, по умолчанию:
"ASC")
Этот параметр принимает одно из двух значений: "ASC", "DESC".
При значении "ASC" линия сортируется по возрастанию ключа сортировки, а при "DESC" — по убыванию.
-
size - (Необязательно, целое число, по умолчанию:
10000)
Максимальная длина линии, представленной в агрегации. Допустимые значения от одного до 10000.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-metrics-geo-line.html