lib/sunspot/query/query.rb in sunspot-0.10.5 vs lib/sunspot/query/query.rb in sunspot-0.10.6
- old
+ new
@@ -3,13 +3,12 @@
class Query
attr_accessor :scope, :fulltext, :parameter_adjustment
def initialize(types)
@scope = Scope.new
- @field_facets = []
- @query_facets = {}
@sort = SortComposite.new
+ @components = []
if types.length == 1
@scope.add_restriction(TypeField.instance, Restriction::EqualTo, types.first)
else
@scope.add_restriction(TypeField.instance, Restriction::AnyOf, types)
end
@@ -25,25 +24,22 @@
def add_location_restriction(coordinates, radius)
@local = Local.new(coordinates, radius)
end
- def add_field_facet(field, options = {})
- facet = FieldFacet.build(field, options)
- if facet.is_a?(QueryFacet)
- @query_facets[field.name.to_sym] = facet
- else
- @field_facets << facet
- end
+ def add_sort(sort)
+ @sort << sort
end
- def add_query_facet(name, options = {})
- @query_facets[name.to_sym] = QueryFacet.new(name, options)
+ def add_field_facet(facet)
+ @components << facet
+ facet
end
- def add_sort(sort)
- @sort << sort
+ def add_query_facet(facet)
+ @components << facet
+ facet
end
def paginate(page, per_page)
if @pagination
@pagination.page = page
@@ -65,19 +61,16 @@
{ :q => @scope.to_boolean_phrase }
else
@scope.to_params
end
Sunspot::Util.deep_merge!(params, @fulltext.to_params) if @fulltext
- @field_facets.each do |facet|
- Sunspot::Util.deep_merge!(params, facet.to_params)
- end
- @query_facets.values.each do |facet|
- Sunspot::Util.deep_merge!(params, facet.to_params)
- end
Sunspot::Util.deep_merge!(params, @sort.to_params)
Sunspot::Util.deep_merge!(params, @pagination.to_params) if @pagination
Sunspot::Util.deep_merge!(params, @local.to_params) if @local
+ @components.each do |component|
+ Sunspot::Util.deep_merge!(params, component.to_params)
+ end
@parameter_adjustment.call(params) if @parameter_adjustment
params[:q] ||= '*:*'
params
end
@@ -85,13 +78,9 @@
@pagination.page if @pagination
end
def per_page
@pagination.per_page if @pagination
- end
-
- def query_facet(name)
- @query_facets[name] if @query_facets
end
end
end
end