Ruby on rails Rails中的邻近搜索
Rails有哪些邻近搜索选项?也许各有利弊 邮政编码数据库是未来的发展方向吗? 或者与gem(如Geocoder)一起使用地理编码? 有什么最佳实践或陷阱需要注意吗? 例如,一个黄页类型的应用程序,企业可以在其中列出,用户可以输入他们的邮政编码,找到离他们很近的企业,或者在指定英里半径内的企业Ruby on rails Rails中的邻近搜索,ruby-on-rails,ruby-on-rails-3,postgresql,geocoding,proximity,Ruby On Rails,Ruby On Rails 3,Postgresql,Geocoding,Proximity,Rails有哪些邻近搜索选项?也许各有利弊 邮政编码数据库是未来的发展方向吗? 或者与gem(如Geocoder)一起使用地理编码? 有什么最佳实践或陷阱需要注意吗? 例如,一个黄页类型的应用程序,企业可以在其中列出,用户可以输入他们的邮政编码,找到离他们很近的企业,或者在指定英里半径内的企业 更新:该应用程序与上面的示例应用程序非常相似-企业可以在应用程序中列出一个目录,该目录将包含每种类型的企业的类别,用户可以进入一个类别,并在输入邮政编码后按距离对结果进行排序-因此,最接近他们的企业将首先
更新:该应用程序与上面的示例应用程序非常相似-企业可以在应用程序中列出一个目录,该目录将包含每种类型的企业的类别,用户可以进入一个类别,并在输入邮政编码后按距离对结果进行排序-因此,最接近他们的企业将首先显示。不会按名称或其他标准进行搜索-只需进入“拳击犬饲养者”页面并按距离排序即可。我自己没有地理编码的经验,但Alex Reisner的gem看起来是最好的选择,相差一英里 Geocoder是Ruby的完整地理编码解决方案。在Rails中,它添加了按街道或IP地址进行地理编码,反向地理编码根据给定的坐标查找街道地址,以及距离查询。这很简单,只需在对象上调用地理代码,然后使用像Vincement.nearBillings,MT这样的范围
查看完整的示例,了解如何使用它。我自己没有地理编码的经验,但Alex Reisner的gem看起来是最好的选择,相差一英里 Geocoder是Ruby的完整地理编码解决方案。在Rails中,它添加了按街道或IP地址进行地理编码,反向地理编码根据给定的坐标查找街道地址,以及距离查询。这很简单,只需在对象上调用地理代码,然后使用像Vincement.nearBillings,MT这样的范围
有关如何使用它的完整示例,请查看。如果您计划添加附加搜索条件,例如公司名称、类别或复杂排序,并且您的数据库将增长超过10000,我建议使用外部搜索服务器。例如+ 以下是地理搜索的示例:
RoR模型解决方案(如)在使用时效率不高。如果您计划添加附加搜索条件,如公司名称、类别或复杂排序,并且您的数据库将增长超过10000,我建议使用外部搜索服务器。例如+ 以下是地理搜索的示例:
RoR模型解决方案(如)在使用时效率不高。答案取决于您想做什么。如果你想在一个半径范围内进行简单的近程搜索之类的,那么gem就太棒了!现在,如果您想要更高级的搜索功能多边形、多多边形搜索等,我建议使用数据库和精彩的扩展。对于Rails的使用,您一定要查看来自一个非常好的gem的作者的,该gem使用了超高速库和地理空间计算 否则,如果您发现您需要一个具有GIS功能的专用搜索服务器,那么您肯定应该使用Ruby,Ruby有一个很好的gem来帮助您使用名为ES的搜索引擎
希望我能帮忙 答案取决于你想做什么。如果你想在一个半径范围内进行简单的近程搜索之类的,那么gem就太棒了!现在,如果您想要更高级的搜索功能多边形、多多边形搜索等,我建议使用数据库和精彩的扩展。对于Rails的使用,您一定要查看来自一个非常好的gem的作者的,该gem使用了超高速库和地理空间计算 否则,如果您发现您需要一个具有GIS功能的专用搜索服务器,那么您肯定应该使用Ruby,Ruby有一个很好的gem来帮助您使用名为ES的搜索引擎
希望我能帮忙 您好,谢谢您的回答-我已经更新了关于该应用程序的更多信息,它将不会有其他排序选项或搜索。我不久前写了一个类似的应用程序。我用thinkig_sphinx与反向地理编码。嗨,谢谢你的回答-我已经更新了关于该应用程序的更多信息,它不会有其他排序选项或搜索。我不久前写了一个类似的应用程序。我用thinkig_sphinx与反向地理编码。谢谢你的回答Gerry-我用有关应用程序的信息更新了我的问题,看起来地理编码器会很好,你同意吗?尽管如此,我还是担心谷歌API的限制,即每天只有2500个请求——这是一个值得关注的问题吗?或者缓存选项会否定这一点吗?嗯,有很多方法可以处理缓存地理编码请求。我建议您使用Redis,但请记住,当您的应用程序越来越大时,您很可能早晚会达到Google API的限制。感谢您的回答Gerry-我用有关应用程序的信息更新了我的问题,看起来Geocoder会很好,您同意吗?中高音
hough,我担心谷歌API的限制,每天只有2500个请求——这是一个值得关注的问题吗?或者缓存选项会否定这一点吗?嗯,有很多方法可以处理缓存地理编码请求。我建议您使用Redis,但请记住,当您的应用程序越来越大时,您很可能早晚会达到Google API的限制。