我的应用程序有一个路由列表,每个路由都有一个步骤列表。 我使用Solr / Sunpost索引步骤lat / lng坐标做一些搜索。一段代码:
class Step < ActiveRecord::Base
belongs_to :route
searchable do
integer :route_id, :references => Route
latlon(:coordinates) { Sunspot::Util::Coordinates.new(lat, lng) }
end
end
我可以使用来自太阳黑子的order_by_geodist()进行搜索,它运作正常:
s = Step.search do
order_by_geodist(:coordinates, lat, lng)
end
问题是:有没有办法按route_id对结果进行分组?换句话说,我想为每条路线只返回一步。
答案 0 :(得分:0)
已解决“group”选项
s = Step.search do
group :route_id
order_by_geodist(:coordinates, lat, lng)
end
s.group(:route_id).groups.each do |g|
logger.info g.value
logger.info g.results[0].inspect
end