Rails有哪些邻近搜索选项? (也许各有利弊?)
(示例用法,企业可以列出的黄页类型应用程序,用户可以输入他们的邮政编码,找到靠近他们或在指定里程范围内的商家。)
更新:该应用与上面的示例应用完全相同 - 企业可以在应用中列出哪个是必不可少的目录(每个类型的业务都有类别),用户可以去到一个类别并按距离对结果进行排序(输入他们的邮政编码后 - 所以最接近他们的企业首先显示)。将不会按名称或其他标准进行搜索 - 只需访问“义和团犬种”页面并按距离排序即可。
答案 0 :(得分:8)
答案取决于你想做什么。如果你想进行简单的近距离搜索(在半径和东西内),那么Geocoder宝石就更好了!现在,如果您想要更高级的搜索功能(多边形,多边形搜索等),我建议您使用PostrgeSQL数据库和精彩的PostGIS扩展名。要与Rails一起使用,你一定要查看PostGIS adapter for ActiveRecord来自一个名为RGeo的非常好的宝石的作者,该宝石使用超高速库GEOS和Proj作为地理空间计算。
否则如果您发现需要具有GIS功能的专用搜索服务器,那么您一定要使用ElasticSearch并且Ruby有一个很棒的宝石可以帮助您使用名为Tire的ES。
希望我帮忙!
答案 1 :(得分:1)
如果您计划添加附加搜索条件(例如公司名称,类别)或复杂排序,并且您的数据库将超过10000,我建议您使用外部搜索服务器。例如sphinx search + thinking sphinx。
以下是geosearching的示例:http://freelancing-god.github.com/ts/en/geosearching.html
RoR模型解决方案(如Geocoder)对full text searching的效率不高。
答案 2 :(得分:0)