# Returns the result count by type
def result_count_by_type
- ret = Hash.new {|h,k| h[k] = 0}
+ ret = Hash.new {|h, k| h[k] = 0}
result_ids.group_by(&:first).each do |scope, ids|
ret[scope] += ids.size
end
# Returns the results for the given offset and limit
def results(offset, limit)
result_ids_to_load = result_ids[offset, limit] || []
- results_by_scope = Hash.new {|h,k| h[k] = []}
+ results_by_scope = Hash.new {|h, k| h[k] = []}
result_ids_to_load.group_by(&:first).each do |scope, scope_and_ids|
klass = scope.singularize.camelcase.constantize
results_by_scope[scope] += klass.search_results_from_ids(scope_and_ids.map(&:last))
ret += ranks_and_ids_in_scope.map {|rs| [scope, rs]}
end
# sort results, higher rank and id first
- ret.sort! {|a,b| b.last <=> a.last}
+ ret.sort! {|a, b| b.last <=> a.last}
# only keep ids now that results are sorted
ret.map! {|scope, r| [scope, r.last]}
ret