Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase realtime database 为了按距离对geoquery结果进行排序,我必须读取整个数据集吗?_Firebase Realtime Database_Google Cloud Firestore_Geofire_Geofirestore - Fatal编程技术网

Firebase realtime database 为了按距离对geoquery结果进行排序,我必须读取整个数据集吗?

Firebase realtime database 为了按距离对geoquery结果进行排序,我必须读取整个数据集吗?,firebase-realtime-database,google-cloud-firestore,geofire,geofirestore,Firebase Realtime Database,Google Cloud Firestore,Geofire,Geofirestore,要在Firebase或Firestore中执行地理查询,可以使用GeoFire和GeoFirestore等库。但要按距离对地理查询的结果进行排序,必须读取整个数据集,对吗?如果geoquery生成大量结果,则在按距离排序时,无法对这些结果(在后端,而不是对用户)进行分页,是吗?是,为了按距离排序,必须读取属于geoquery范围的所有结果 原因是这样的查询是如何工作的:它们返回一组在geohash值范围内的文档,其顺序不一定与它们到查询中心的距离相同 这也意味着在按距离排序的文档列表中无法进行有

要在Firebase或Firestore中执行地理查询,可以使用GeoFire和GeoFirestore等库。但要按距离对地理查询的结果进行排序,必须读取整个数据集,对吗?如果geoquery生成大量结果,则在按距离排序时,无法对这些结果(在后端,而不是对用户)进行分页,是吗?

是,为了按距离排序,必须读取属于geoquery范围的所有结果

原因是这样的查询是如何工作的:它们返回一组在geohash值范围内的文档,其顺序不一定与它们到查询中心的距离相同

这也意味着在按距离排序的文档列表中无法进行有意义的分页,因为您仍然需要读取所有结果。我能想到的最好办法是在云计算中实现Geoquery功能,这样您就可以在那里进行排序/过滤,并且只向客户端返回充满结果的页面。虽然这不会节省您的成本(因为您仍在阅读范围内的所有文档),但它会在向用户发送文档时节省带宽


要了解更多有关此类地理查询如何工作的信息,这解释了为什么它们无法按您希望的方式进行优化,请查看Jeff Delaney网站上我的演讲或文章视频+短片。

是的,为了按距离排序,您必须阅读属于地理查询范围的所有结果

原因是这样的查询是如何工作的:它们返回一组在geohash值范围内的文档,其顺序不一定与它们到查询中心的距离相同

这也意味着在按距离排序的文档列表中无法进行有意义的分页,因为您仍然需要读取所有结果。我能想到的最好办法是在云计算中实现Geoquery功能,这样您就可以在那里进行排序/过滤,并且只向客户端返回充满结果的页面。虽然这不会节省您的成本(因为您仍在阅读范围内的所有文档),但它会在向用户发送文档时节省带宽


为了进一步了解这些地理查询是如何工作的,这就解释了为什么它们不能按照您希望的方式进行优化,看一看我演讲或文章的视频+Jeff Delaney网站上的较短视频。

Hi…看一看你的视频,我知道firestore的限制仍然存在,因为在一个查询中仍然存在单范围比较:对于按距离过滤半径内的文档,我们仍然需要获取包含此半径的Geohash中的所有文档…因此仍然无法实现分页:这仍然有效吗?对于作为基于位置的骑行/交付应用程序的生产应用程序,我正在尝试评估是否超支使从SQL DB中选择Firestore可行?在这种情况下,还有其他开发人员选择加入吗?是的,所有这些仍然适用,并且在使用GeoHash执行地理查询时,它们不太可能改变。推荐其他选项与堆栈溢出无关,但搜索引擎在这方面做得很好。您好……查看您的视频,我了解firestore的局限性仍然存在,因为在一次查询中仍然存在单范围比较:对于按距离过滤半径内的文档,我们仍然需要获取包含此半径的Geohash中的所有文档…因此仍然无法实现分页:这仍然有效吗?对于作为基于位置的骑行/交付应用程序的生产应用程序,我正在尝试评估是否超支使从SQL DB中选择Firestore可行?在这种情况下,还有其他开发人员选择加入吗?是的,所有这些仍然适用,并且在使用GeoHash执行地理查询时,它们不太可能改变。在堆栈溢出问题上,推荐其他选项是无关紧要的,但搜索引擎在这方面做得很好。