lib/sunspot/query/query_facet.rb in sunspot-0.10.5 vs lib/sunspot/query/query_facet.rb in sunspot-0.10.6
- old
+ new
@@ -1,78 +1,16 @@
module Sunspot
module Query
- #
- # QueryFacets encapsulate requests for Sunspot's query faceting capability.
- # They are created by the FieldQuery#add_query_facet method.
- #
- #--
- #
- # The actual concept of a QueryFacet is somewhat artificial - it provides a
- # grouping for the facet at the Sunspot level, which provides a nicer and
- # more consistent API in Sunspot; Solr does not provide any grouping for
- # query facet rows, instead returning each requested row individually, keyed
- # by the boolean phrase used in the facet query.
- #
- class QueryFacet #:nodoc:
- attr_reader :name #:nodoc:
- attr_reader :field #:nodoc:
- attr_reader :options #:nodoc:
-
- def initialize(name, options, setup = nil) #:nodoc:
- @name, @options, @setup = name, options, setup
- @components = []
- end
-
- #
- # Add a QueryFacetRow to this facet. The label argument becomes the value
- # of the Sunspot::QueryFacetRow object corresponding to this query facet
- # row.
- #
- # ==== Parameters
- #
- # label<Object>::
- # An object that will become the value of the result row. Use whatever
- # type is most intuitive.
- #
- # ==== Returns
- #
- # QueryFacetRow:: QueryFacetRow object containing scope for this row
- #
- def add_row(label)
- @components << row = QueryFacetRow.new(label, @setup)
- row
- end
-
- #
- # Express this query facet as Solr parameters
- #
- # ==== Returns
- #
- # Hash:: Solr params hash
- #
- def to_params #:nodoc:
- components = @components.map { |component| component.to_boolean_phrase }
- components.compact!
- if components.empty?
+ class QueryFacet < Connective::Conjunction
+ def to_params
+ if @components.empty?
{}
else
- components = components.first if components.length == 1
{
:facet => 'true',
- :"facet.query" => components
+ :"facet.query" => to_boolean_phrase
}
end
- end
-
- #
- # Get query facet rows (used when constructing results)
- #
- # ==== Returns
- #
- # Array:: Array of QueryFacetRow objects.
- #
- def rows #:nodoc:
- @components
end
end
end
end