ruby-on-rails - Rails 中的邻近搜索

标签 ruby-on-rails ruby-on-rails-3 postgresql geocoding proximity

Rails 有哪些邻近搜索选项? (也许各有利弊?)

  • zip 数据库是可行的方法吗?
  • 或通过 Geocoder 等工具使用地理编码?
  • 是否有任何最佳做法或问题需要注意?

(示例用法,一个黄页类型的应用程序,可以在其中列出企业,用户可以输入他们的邮政编码并找到靠近他们或在指定英里半径范围内的企业。)

更新:该应用程序与上面的示例应用程序非常相似 - 企业可以在应用程序中列出一个必不可少的目录(其中包含每种业务类型的类别),用户可以前往到一个类别并按距离对结果进行排序(在输入他们的邮政编码后 - 所以离他们最近的企业首先显示)。不会按名称或其他标准进行搜索 - 只需转到“Boxer Dog Breeders”页面并按距离排序即可。

最佳答案

好吧,答案取决于您想做什么。如果您想要简单的邻近搜索(在半径范围内),那么 Geocoder gem 不止于此!现在,如果您想要更高级的搜索功能(多边形、多边形搜索等),我建议您使用 PostrgeSQL。数据库与精彩PostGIS扩大。要与 Rails 一起使用,您绝对应该查看 PostGIS adapter for ActiveRecord它来自一个非常好的 gem 的作者,叫做 RGeo它使用超快库 GEOSProj用于地理空间计算。

否则,如果您发现需要具有 GIS 功能的专用搜索服务器,那么您绝对应该使用 ElasticSearch Ruby 有一个很棒的 gem 可以帮助你使用 ES,叫做 Tire .

希望我有所帮助!

关于ruby-on-rails - Rails 中的邻近搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563218/

相关文章:

sql - 如何将多行合并为一个汇总行?

ruby-on-rails - 渲染部分布局不显示任何内容

ruby-on-rails - Gem::RemoteFetcher::FetchError - bundle 安装期间证书验证失败

javascript - 在 Rails 应用程序中对 Javascript 繁重的 UI 进行集成测试的最佳方法是什么?

ruby - 如何在 Dreamhost Rails 3.0.4 上部署测试应用程序?

sql - 优化 Postgresql 函数会计月份日期

ruby-on-rails - 通过关联在 has_many 上出现未初始化的常量错误

css - "Guillemet"箭头不会为 Rails link_to 帮助程序中的按钮生成

Javascript 对象字面量、POST 问题

postgresql - 错误 : bind message has 9914 parameter formats but 0 parameters