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
|