Rails有哪些邻近搜索选项?(可能各有优缺点?)
(例如使用,一个黄页类型的应用程序,企业可以列出,用户可以输入他们的邮政编码,并找到接近他们的企业,或在指定的英里范围内。)
Update:应用程序与上面的示例应用程序非常相似--企业可以在应用程序中列出一个目录(每个类型的业务都有分类),用户可以按距离对结果进行排序(输入邮政编码之后--所以最接近他们的企业首先显示)。将不会有搜索的名称或其他标准-这是一个简单的去‘拳击手狗繁殖者’的网页和排序的距离。
发布于 2012-07-19 14:57:37
答案取决于你想做什么。如果您想要简单的接近搜索(在半径和东西),那么地编码器宝石是非常好的!现在,如果您想要更高级的搜索功能(多边形、多多边形搜索等),我建议使用PostrgeSQL数据库和精彩的PostGIS扩展。要与Rails一起使用,一定要查看用于PostGIS的ActiveRecord适配器,它来自一个非常好的gem的作者,名为RGeo,它使用超快库GEOS和普罗进行地理空间计算。
否则,如果您发现您需要一个具有地理信息系统功能的专用搜索服务器,那么您肯定应该使用ElasticSearch,并且Ruby可以帮助您使用称为轮胎的ES。
希望我帮了你!
发布于 2012-07-19 14:56:29
如果您计划添加附加搜索条件(例如。公司名称,类别)或复杂排序,您的数据库将增长超过10000,我建议使用外部搜索服务器。例如,狮身人面像搜索 + 思考斯芬克斯。
下面是地学的例子:http://freelancing-god.github.com/ts/en/geosearching.html
RoR模型解决方案(如地编码器)在全文检索中效率不高。
发布于 2012-07-19 14:46:02
我本人没有地理编码的经验,但Alex的地编码器宝石看起来是最好的选择,一英里。
Geo编码器是Ruby的一个完整的地理编码解决方案。对于Rails,它添加了地理编码(按街道或IP地址)、反向地理编码(根据给定的坐标查找街道地址)和距离查询。它就像调用对象上的地理代码一样简单,然后使用像Venue.near这样的作用域(“Billings,MT")。
查看自述文件以获得关于如何使用它的完整示例。
https://stackoverflow.com/questions/11563218
复制相似问题