Rails 有哪些邻近搜索选项? (也许各有利弊?)
- zip 数据库是可行的方法吗?
- 或通过 Geocoder 等工具使用地理编码?
- 是否有任何最佳做法或问题需要注意?
(示例用法,一个黄页类型的应用程序,可以在其中列出企业,用户可以输入他们的邮政编码并找到靠近他们或在指定英里半径范围内的企业。)
更新:该应用程序与上面的示例应用程序非常相似 - 企业可以在应用程序中列出一个必不可少的目录(其中包含每种业务类型的类别),用户可以前往到一个类别并按距离对结果进行排序(在输入他们的邮政编码后 - 所以离他们最近的企业首先显示)。不会按名称或其他标准进行搜索 - 只需转到“Boxer Dog Breeders”页面并按距离排序即可。
最佳答案
好吧,答案取决于您想做什么。如果您想要简单的邻近搜索(在半径范围内),那么 Geocoder gem 不止于此!现在,如果您想要更高级的搜索功能(多边形、多边形搜索等),我建议您使用 PostrgeSQL。数据库与精彩PostGIS扩大。要与 Rails 一起使用,您绝对应该查看 PostGIS adapter for ActiveRecord它来自一个非常好的 gem 的作者,叫做 RGeo它使用超快库 GEOS和 Proj用于地理空间计算。
否则,如果您发现需要具有 GIS 功能的专用搜索服务器,那么您绝对应该使用 ElasticSearch Ruby 有一个很棒的 gem 可以帮助你使用 ES,叫做 Tire .
希望我有所帮助!
关于ruby-on-rails - Rails 中的邻近搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563218/