Rails 太阳黑子 + 空间搜索 + 父级分组

Rails Sunspot + spatial search + group by parent

我的应用程序有一个路线列表,每条路线都有一个步骤列表。 我正在使用 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

我可以使用 Sunspot 的 order_by_geodist() 进行搜索,它工作正常:

s = Step.search do
   order_by_geodist(:coordinates, lat, lng)
end

问题是:有没有办法按 route_id 对结果进行分组?换句话说,我想 return 每条路线只走一步。

已通过 "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