0
我无法弄清楚如何遍历已设置为group_by
的ThinkingSphinx搜索结果。我目前有以下几种:如何迭代ThinkingSphinx中的分组结果?
search = Event.search(
{
group_by: 'category_id',
group_function: :attr
}
)
search.each_with_groupby_and_count do |event, group, count|
puts [event, group, count].join(' - ')
end
但是,这只会为每个类别返回一条记录。看起来团体和计数值是正确的,但我只能得到每个类别的第一个事件,我预计这个事件是组中的所有事件。是否有可能获得一个哈希或类似的数组?此外,如果这是可能的话,per_page
选项是每个组?
我希望each_with_group_and_count遍历是这样的:
[
{group: 1, hits: [Event1, Event2], count: 2},
{group: 2: hits: [Event3], count: 1}
]
这很不幸。按类别排序并跟踪更改并不能解决我的问题,因为我想显示每个类别的前10个结果。如果第一类碰巧有100个事件,并且每个页面的结果都是100,那么为了得到我需要的结果,我将不得不遍历多个页面,这将会有点不可预测。我认为在这种情况下,最好只为每个类别分别查询。感谢您的洞察力。 – 2013-04-05 13:09:56