Class: Blacklight::Solr::Request

Inherits:
ActiveSupport::HashWithIndifferentAccess
  • Object
show all
Defined in:
lib/blacklight/solr/request.rb

Constant Summary collapse

SINGULAR_KEYS =
%w(facet fl q qt rows start spellcheck spellcheck.q sort per_page wt hl group defType)
ARRAY_KEYS =
%w(facet.field facet.query facet.pivot fq hl.fl)

Instance Method Summary collapse

Constructor Details

#initialize(constructor = {}) ⇒ Request

Returns a new instance of Request.



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/blacklight/solr/request.rb', line 8

def initialize(constructor = {})
  if constructor.is_a?(Hash)
    super()
    update(constructor)
  else
    super(constructor)
  end
  ARRAY_KEYS.each do |key|
    self[key] ||= []
  end
end

Instance Method Details

#append_facet_fields(values) ⇒ Object



24
25
26
# File 'lib/blacklight/solr/request.rb', line 24

def append_facet_fields(values)
  self['facet.field'] += Array(values)
end

#append_facet_pivot(query) ⇒ Object



32
33
34
# File 'lib/blacklight/solr/request.rb', line 32

def append_facet_pivot(query)
  self['facet.pivot'] << query
end

#append_facet_query(values) ⇒ Object



28
29
30
# File 'lib/blacklight/solr/request.rb', line 28

def append_facet_query(values)
  self['facet.query'] += Array(values)
end

#append_filter_query(query) ⇒ Object



20
21
22
# File 'lib/blacklight/solr/request.rb', line 20

def append_filter_query(query)
  self['fq'] << query
end

#append_highlight_field(query) ⇒ Object



36
37
38
# File 'lib/blacklight/solr/request.rb', line 36

def append_highlight_field(query)
  self['hl.fl'] << query
end

#to_hashObject



40
41
42
# File 'lib/blacklight/solr/request.rb', line 40

def to_hash
  reject {|key, value| ARRAY_KEYS.include?(key) && value.blank?}
end