Class: Sunspot::Query::QueryFacet
- Inherits:
-
Object
- Object
- Sunspot::Query::QueryFacet
- Defined in:
- lib/sunspot/query/query_facet.rb
Overview
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.
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
:nodoc:.
Instance Method Summary collapse
-
#add_row(label) ⇒ Object
Add a QueryFacetRow to this facet.
-
#initialize(name, setup) ⇒ QueryFacet
constructor
:nodoc:.
-
#rows ⇒ Object
Get query facet rows (used when constructing results).
-
#to_params ⇒ Object
Express this query facet as Solr parameters.
Constructor Details
#initialize(name, setup) ⇒ QueryFacet
:nodoc:
18 19 20 21 22 |
# File 'lib/sunspot/query/query_facet.rb', line 18 def initialize(name, setup) #:nodoc: @name = name @setup = setup @components = [] end |
Instance Attribute Details
#name ⇒ Object (readonly)
:nodoc:
16 17 18 |
# File 'lib/sunspot/query/query_facet.rb', line 16 def name @name end |
Instance Method Details
#add_row(label) ⇒ Object
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
39 40 41 42 |
# File 'lib/sunspot/query/query_facet.rb', line 39 def add_row(label) @components << row = QueryFacetRow.new(label, @setup) row end |
#rows ⇒ Object
Get query facet rows (used when constructing results)
Returns
- Array
-
Array of QueryFacetRow objects.
67 68 69 |
# File 'lib/sunspot/query/query_facet.rb', line 67 def rows #:nodoc: @components end |
#to_params ⇒ Object
Express this query facet as Solr parameters
Returns
- Hash
-
Solr params hash
51 52 53 54 55 56 57 58 |
# File 'lib/sunspot/query/query_facet.rb', line 51 def to_params #:nodoc: components = @components.map { |component| component.to_boolean_phrase } components = components.first if components.length == 1 { :facet => 'true', :"facet.query" => components } end |