class Sunspot::Query::Group
A Group
groups by the unique values of a given field, or by given queries.
Attributes
fields[R]
limit[RW]
ngroups[RW]
queries[R]
truncate[RW]
Public Class Methods
new()
click to toggle source
# File lib/sunspot/query/group.rb, line 10 def initialize @sort = SortComposite.new @fields = [] @queries = [] end
Public Instance Methods
add_field(field)
click to toggle source
# File lib/sunspot/query/group.rb, line 16 def add_field(field) if field.multiple? raise(ArgumentError, "#{field.name} cannot be used for grouping because it is a multiple-value field") end @fields << field end
add_query(query)
click to toggle source
# File lib/sunspot/query/group.rb, line 23 def add_query(query) @queries << query end
add_sort(sort)
click to toggle source
# File lib/sunspot/query/group.rb, line 27 def add_sort(sort) @sort << sort end
to_params()
click to toggle source
# File lib/sunspot/query/group.rb, line 31 def to_params params = { :group => 'true', :"group.ngroups" => @ngroups.nil? ? 'true' : @ngroups.to_s } params.merge!(@sort.to_params('group.')) params[:"group.field"] = @fields.map(&:indexed_name) if @fields.any? params[:"group.query"] = @queries.map(&:to_boolean_phrase) if @queries.any? params[:"group.limit"] = @limit if @limit params[:"group.truncate"] = @truncate if @truncate params end