ElasticSearch:地理点聚类

问题描述 投票:0回答:2

我的 ElasticSearch 索引中有一些带有地理点的行。现在,我搜索所有行,例如半径5公里内。结果是一个包含所有与查询匹配的点的列表。

是否可以在 ElasticSearch 中对结果进行聚类以获取所有“热点”?已经找到了elasticsearch的geo centroid聚合函数,但这不是我正在寻找的东西。

我知道,可以使用 Mapbox 的 Supercluster 或类似的库来做到这一点。但是 ElasticSearch 可以吗?请看这两张图片。第二张图显示了我想要得到的结果。干杯!

elasticsearch geolocation geospatial geo markerclusterer
2个回答
3
投票

我还没有使用过它,但我认为你需要一个地理哈希网格聚合。请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-geohashgrid-aggregation.html

您应该能够改变精度,它将返回包含文档计数的 geo_hash 存储桶。


0
投票

有一个开源插件支持地理点聚类,就像您的图片一样。不幸的是,在撰写本文时,它不支持 Elastcsearch 8.x

https://github.com/opendatasoft/elasticsearch-aggregation-geoclustering

付费的 Elastcsearch 版本确实包含类似的功能,但它将地图划分为固定的网格。

© www.soinside.com 2019 - 2024. All rights reserved.