为了排序geoquery通过距离的计算结果,我必须读取整个数据集?

问题描述 投票:-1回答:2

在火力地堡或公司的FireStore执行geoqueries,有喜欢GeoFire和GeoFirestore库。但到geoquery通过距离的排序结果,整个数据集必须仔细阅读,正确吗?如果geoquery产生大量的结果,没有办法进行分页那些结果(在后端,不给用户)通过距离排序时,是吗?

firebase-realtime-database google-cloud-firestore geofire geofirestore
2个回答
1
投票

不,地理查询不读取整个结果集。这将不是在所有缩放。你可能会想,如果您想了解究竟这些查询如何能够只提取有界套装使用的地图坐标结果geohashes是如何工作的阅读起来。我建议您阅读this blog post


1
投票

是的,为了通过距离排序,你必须阅读落入Geoquery范围内的所有结果。

这样做的原因是这种查询是如何工作的:他们返回一组的是一个范围值地理散列,这是不一定相同的顺序由他们对查询中心距离内的文件。

这也意味着,有没有办法做有意义的分页中的由他们的距离排序,因为你总有需要阅读所有结果的文件清单。我能想到的是贯彻落实Geoquery云功能,让你可以做排序/过滤器那里,只返回页面全部结果给客户最好的。虽然这并不在你的成本节省(因为你还在读书的范围内的所有文件),它会在发送文件给用户节省带宽。

要了解更多关于这种geoqueries是如何工作的,这也解释了为什么他们不能优化你希望做的方式,看看我的谈话herethis文章+短视频杰夫·德莱尼的网站的视频。

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