【发布时间】:2012-01-16 15:51:14
【问题描述】:
标题不清楚,我解释一下:
在我的应用程序中,我有事件。它们是地理定位的:我存储纬度和经度。
我的问题是,当用户搜索事件时,他们会输入以下内容:kansas、montreal 等。
因此,当我找到kansas(使用地理编码器)时,我得到了它的“中心”,所以当我向太阳黑子询问“靠近”这个位置的事件时,我只得到靠近该位置中心的事件。如果他们输入france 或australia,那就更糟了。
我想知道你是否知道处理这个问题的好方法。
我现在唯一的想法是在事件保存时也存储事件位置的country、state 等(我可以从谷歌获得标准化地址),然后对它们的内容进行文本搜索在位置字段中输入...
但是这种方法存在问题:(
在 solr 中,不可能做到以下几点:
any_of do
with(:coordinates).near(coord[0], coord[1], :precision => 3)
keywords where
end
因为near 不能嵌套。 See here.
他们是否在 sunspot 1.3 中进行了更改以允许这样做?
您还有其他解决方案吗?我什至可以接受从 solr 更改为弹性搜索等其他搜索平台,但我不希望这样做。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 search geolocation sunspot