solr_plugin.rb
1006 Bytes
1
2
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
32
33
34
35
36
37
38
39
40
41
class SolrPlugin < Noosfero::Plugin; end;
require_dependency 'solr_plugin/search_helper'
class SolrPlugin < Noosfero::Plugin
include SolrPlugin::SearchHelper
def self.plugin_name
"Solr"
end
def self.plugin_description
_("Uses Solr as search engine.")
end
def stylesheet?
true
end
def find_by_contents(asset, scope, query, paginate_options={}, options={})
klass = asset_class(asset)
category = options.delete(:category)
filter = options.delete(:filter)
return if empty_query?(query, category) && klass != Product
solr_options = solr_options(class_asset(klass), category)
solr_options.merge!(products_options(user)) if klass == Product && empty_query?(query, category)
klass.find_by_contents(query, paginate_options, solr_options.merge(options))
end
def method_missing method, *args, &block
if self.context.respond_to? method
self.context.send method, *args, &block
else
super method, *args, &block
end
end
end