Commit bbb8594c53c7c0600ce5cea9d5f195735a759651
1 parent
e3aaf966
Exists in
master
and in
28 other branches
Use new acts_as_solr interface for pagination
Showing
1 changed file
with
7 additions
and
7 deletions
Show diff stats
lib/acts_as_searchable.rb
@@ -31,27 +31,29 @@ module ActsAsSearchable | @@ -31,27 +31,29 @@ module ActsAsSearchable | ||
31 | def find_by_contents(query, pg_options = {}, options = {}, db_options = {}) | 31 | def find_by_contents(query, pg_options = {}, options = {}, db_options = {}) |
32 | pg_options[:page] ||= 1 | 32 | pg_options[:page] ||= 1 |
33 | pg_options[:per_page] ||= 20 | 33 | pg_options[:per_page] ||= 20 |
34 | - options[:limit] ||= pg_options[:per_page].to_i*pg_options[:page].to_i | 34 | + options[:page] = pg_options[:page].to_i |
35 | + options[:per_page] = pg_options[:per_page].to_i | ||
35 | options[:scores] ||= true | 36 | options[:scores] ||= true |
36 | options[:filter_queries] ||= [] | 37 | options[:filter_queries] ||= [] |
37 | - all_facets_enabled = options.delete(:all_facets) | ||
38 | options[:filter_queries] << "schema_name:\"#{schema_name}\"" unless schema_name.empty? | 38 | options[:filter_queries] << "schema_name:\"#{schema_name}\"" unless schema_name.empty? |
39 | + all_facets_enabled = options.delete(:all_facets) | ||
40 | + options[:per_page] = options.delete(:extra_limit) if options[:extra_limit] | ||
39 | results = [] | 41 | results = [] |
40 | facets = all_facets = {} | 42 | facets = all_facets = {} |
41 | 43 | ||
42 | solr_result = find_by_solr(query, options) | 44 | solr_result = find_by_solr(query, options) |
43 | if all_facets_enabled | 45 | if all_facets_enabled |
44 | options[:facets][:browse] = nil | 46 | options[:facets][:browse] = nil |
45 | - all_facets = find_by_solr(query, options.merge(:limit => 0)).facets | 47 | + all_facets = find_by_solr(query, options.merge(:per_page => 0)).facets |
46 | end | 48 | end |
47 | 49 | ||
48 | if !solr_result.nil? | 50 | if !solr_result.nil? |
49 | facets = options.include?(:facets) ? solr_result.facets : [] | 51 | facets = options.include?(:facets) ? solr_result.facets : [] |
50 | 52 | ||
51 | if db_options.empty? | 53 | if db_options.empty? |
52 | - results = solr_result.results | 54 | + results = solr_result |
53 | else | 55 | else |
54 | - ids = solr_result.results.map{|r|r[:id].to_i} | 56 | + ids = solr_result.results.map{ |r| r[:id].to_i } |
55 | if ids.empty? | 57 | if ids.empty? |
56 | ids << -1 | 58 | ids << -1 |
57 | end | 59 | end |
@@ -64,8 +66,6 @@ module ActsAsSearchable | @@ -64,8 +66,6 @@ module ActsAsSearchable | ||
64 | 66 | ||
65 | results = find(:all, db_options) | 67 | results = find(:all, db_options) |
66 | end | 68 | end |
67 | - | ||
68 | - results = results.paginate(pg_options.merge(:total_entries => solr_result.total)) | ||
69 | end | 69 | end |
70 | 70 | ||
71 | {:results => results, :facets => facets, :all_facets => all_facets} | 71 | {:results => results, :facets => facets, :all_facets => all_facets} |