class Sunspot::Query::FieldStats
Constants
- STATS_FUNCTIONS
Public Class Methods
new(field, options)
click to toggle source
# File lib/sunspot/query/field_stats.rb, line 4 def initialize(field, options) @field, @options = field, options @facets = [] end
Public Instance Methods
add_facet(field)
click to toggle source
# File lib/sunspot/query/field_stats.rb, line 9 def add_facet field @facets << field end
add_json_facet(json_facet)
click to toggle source
# File lib/sunspot/query/field_stats.rb, line 13 def add_json_facet(json_facet) @json_facet = json_facet end
facet_key()
click to toggle source
# File lib/sunspot/query/field_stats.rb, line 52 def facet_key qualified_param 'facet' end
json_stats_params()
click to toggle source
# File lib/sunspot/query/field_stats.rb, line 42 def json_stats_params params = {} STATS_FUNCTIONS.each { |s| params[s] = "#{s.to_s}(#{@field.indexed_name})" } unless @options[:stats].nil? to_remove = STATS_FUNCTIONS - @options[:stats] to_remove.map { |s| params.delete(s)} end params end
qualified_param(name)
click to toggle source
# File lib/sunspot/query/field_stats.rb, line 56 def qualified_param name :"f.#{@field.indexed_name}.stats.#{name}" end
recursive_add_stats(query)
click to toggle source
# File lib/sunspot/query/field_stats.rb, line 30 def recursive_add_stats(query) query.keys.each do |k| if !query[k][:facet].nil? query[k][:facet] = recursive_add_stats(query[k][:facet]) end query[k][:facet] ||= {} query[k][:sort] = { @options[:sort] => @options[:sort_type]||'desc' } unless @options[:sort].nil? query[k][:facet].merge!(json_stats_params) end query end
to_params()
click to toggle source
# File lib/sunspot/query/field_stats.rb, line 17 def to_params params = {} if !@json_facet.nil? params['json.facet'] = recursive_add_stats(@json_facet.get_params).to_json else params.merge!(:stats => true, :"stats.field" => [@field.indexed_name]) params[facet_key] = @facets.map(&:indexed_name) unless @facets.empty? end params end