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

时间:2015-05-27 19:37:23

标签: ruby-on-rails solr geospatial sunspot sunspot-rails

我的应用程序有一个路由列表,每个路由都有一个步骤列表。 我使用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对结果进行分组?换句话说,我想为每条路线只返回一步。

1 个答案:

答案 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