我在ElasticSearch索引中有一些带有地理点的行。现在,我搜索所有行,例如半径为5公里的行。结果是一个列表,其中包含所有与查询匹配的点。
是否可以在ElasticSearch中对结果进行聚类以获得所有“热点”?已经找到了elasticsearch的地理质心聚合功能,但这不是我正在搜索的东西。
我知道,可以用Mapbox的Supercluster之类的库来实现。但是ElasticSearch可以吗?请看两张图。第二张图显示了我想要得到的结果。干杯!
x1c 0d1x的数据
的数据
我在ElasticSearch索引中有一些带有地理点的行。现在,我搜索所有行,例如半径为5公里的行。结果是一个列表,其中包含所有与查询匹配的点。
是否可以在ElasticSearch中对结果进行聚类以获得所有“热点”?已经找到了elasticsearch的地理质心聚合功能,但这不是我正在搜索的东西。
我知道,可以用Mapbox的Supercluster之类的库来实现。但是ElasticSearch可以吗?请看两张图。第二张图显示了我想要得到的结果。干杯!
x1c 0d1x的数据
的数据
2条答案
按热度按时间sg24os4d1#
我没有使用过它,但我认为你需要一个地理哈希网格聚合。请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-geohashgrid-aggregation.html
你应该能够改变你的精度,它将返回geo_hash bucket和文档计数。
zazmityj2#
有一个开源插件支持Geo Point集群,与您的图片相同。但是,它目前不支持Elasticsearch 8.x。
https://github.com/opendatasoft/elasticsearch-aggregation-geoclustering
Elasticsearch的付费版本包括类似的feature,但它将Map划分为固定的网格。