module SearchEnjoy::Aggregation::ClassMethods
Public Instance Methods
aggregate(*args)
click to toggle source
# File lib/search_enjoy/aggregation.rb, line 15 def aggregate(*args) values = @search_index.values.map { |object| args.map { |key| object[key] } } values_per_keys = values.transpose.map(&:uniq).zip(args) aggregations = [] values_per_keys.each do |key_values| key = key_values.last hash = { field: key, data: [] } key_values.first.each do |value| count = search(key => value).size data_hash = { value: value, count: count } hash[:data] << data_hash end aggregations << hash end aggregations end