Class: Median::Primo::SearchRequest
- Inherits:
-
Object
- Object
- Median::Primo::SearchRequest
- Defined in:
- lib/median/primo/search_request.rb
Constant Summary collapse
- PRECISION_OPTIONS =
{contains: 'contains', exact: 'exact', begins_with: 'begins_with'}
Instance Attribute Summary collapse
Instance Method Summary collapse
- #doc_id ⇒ Object
-
#doc_id=(value) ⇒ Object
doc id.
- #facets ⇒ Object
-
#facets=(value) ⇒ Object
Facets.
- #include_facet?(name) ⇒ Boolean
-
#initialize(request_params) ⇒ SearchRequest
constructor
A new instance of SearchRequest.
- #page ⇒ Object
-
#page=(value) ⇒ Object
page.
- #page_size ⇒ Object
-
#page_size=(value) ⇒ Object
page size.
- #precision ⇒ Object
-
#precision=(value) ⇒ Object
precision.
-
#start_index ⇒ Object
start index.
-
#to_xml ⇒ Object
utils.
Constructor Details
#initialize(request_params) ⇒ SearchRequest
Returns a new instance of SearchRequest.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/median/primo/search_request.rb', line 5 def initialize(request_params) # set search term self.search_term = request_params[:q] # set the index field self.index_field = request_params[:if] # set the precision self.precision = request_params[:po] # page and page size self.page = request_params[:p] self.page_size = request_params[:ps] # set facets self.facets = request_params[:f] # doc id in case we do a fullview search # for a single record self.doc_id = request_params[:id] # search scope self.scope = request_params[:scope] end |
Instance Attribute Details
#index_field ⇒ Object
32 33 34 |
# File 'lib/median/primo/search_request.rb', line 32 def index_field @index_field || 'any' end |
#scope ⇒ Object
79 80 81 |
# File 'lib/median/primo/search_request.rb', line 79 def scope @scope || 'default' end |
#search_term ⇒ Object
26 27 28 |
# File 'lib/median/primo/search_request.rb', line 26 def search_term @search_term || doc_id end |
Instance Method Details
#doc_id ⇒ Object
73 74 75 |
# File 'lib/median/primo/search_request.rb', line 73 def doc_id @doc_id end |
#doc_id=(value) ⇒ Object
doc id
69 70 71 |
# File 'lib/median/primo/search_request.rb', line 69 def doc_id=(value) @doc_id = value end |
#facets ⇒ Object
97 98 99 |
# File 'lib/median/primo/search_request.rb', line 97 def facets @facets || [] end |
#facets=(value) ⇒ Object
Facets
84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/median/primo/search_request.rb', line 84 def facets=(value) @facets = [] value.each do |facet_name, facet_values| facet_values.each do |facet_value| # create the facet struct facet = OpenStruct.new facet.name = facet_name facet.value = facet_value @facets << facet end if facet_name and facet_values and facet_values.is_a?(Array) end if value and value.is_a?(Hash) end |
#include_facet?(name) ⇒ Boolean
101 102 103 104 105 106 |
# File 'lib/median/primo/search_request.rb', line 101 def include_facet?(name) facets.each do |f| return true if f.name.downcase == name.downcase end if name.present? false end |
#page ⇒ Object
50 51 52 |
# File 'lib/median/primo/search_request.rb', line 50 def page @page || 1 end |
#page=(value) ⇒ Object
page
46 47 48 |
# File 'lib/median/primo/search_request.rb', line 46 def page=(value) @page = value.to_i if value.to_i > 0 end |
#page_size ⇒ Object
59 60 61 |
# File 'lib/median/primo/search_request.rb', line 59 def page_size @page_size || 25 end |
#page_size=(value) ⇒ Object
page size
55 56 57 |
# File 'lib/median/primo/search_request.rb', line 55 def page_size=(value) @page_size = value.to_i if value.to_i > 0 end |
#precision ⇒ Object
41 42 43 |
# File 'lib/median/primo/search_request.rb', line 41 def precision @precision || PRECISION_OPTIONS[:contains] end |
#precision=(value) ⇒ Object
precision
37 38 39 |
# File 'lib/median/primo/search_request.rb', line 37 def precision=(value) @precision = PRECISION_OPTIONS[value.to_sym] if value.present? end |
#start_index ⇒ Object
start index
64 65 66 |
# File 'lib/median/primo/search_request.rb', line 64 def start_index ((page - 1) * page_size) + 1 end |
#to_xml ⇒ Object
utils
110 111 112 |
# File 'lib/median/primo/search_request.rb', line 110 def to_xml @doc_id.present? ? fullview_request_xml : search_request_xml end |