Module: Solr::Connection::SearchExt

Included in:
Base
Defined in:
lib/solr/connection/search_ext.rb

Instance Method Summary collapse

Instance Method Details

#search(query, params = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/solr/connection/search_ext.rb', line 3

def search(query, params={})
  if params[:fields].is_a?(Array)
    params[:fl] = params.delete(:fields).join(' ')
  else
    params[:fl] = params.delete :fields
  end
  fq = build_filters(params.delete(:filters)).join(' ') if params[:filters]
  if params[:fq] and fq
    params[:fq] += " AND #{fq}"
  else
    params[:fq] = fq
  end
  facets = params.delete(:facets) if params[:facets]
  if facets
    if facets.is_a?(Array)
      params << {:facet => true}
      params += build_facets(facets)          
    elsif facets.is_a?(Hash)
      params << {:facet => true}
      params += build_facet(facets)
    elsif facets.is_a?(String)
      params += facets
    else
      raise 'facets must either be a Hash or an Array'
    end
  end
  params[:qt] ||= :dismax
  self.query params
end