Commit bbb8594c53c7c0600ce5cea9d5f195735a759651

Authored by Rafael Martins
1 parent e3aaf966

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 31 def find_by_contents(query, pg_options = {}, options = {}, db_options = {})
32 32 pg_options[:page] ||= 1
33 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 36 options[:scores] ||= true
36 37 options[:filter_queries] ||= []
37   - all_facets_enabled = options.delete(:all_facets)
38 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 41 results = []
40 42 facets = all_facets = {}
41 43  
42 44 solr_result = find_by_solr(query, options)
43 45 if all_facets_enabled
44 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 48 end
47 49  
48 50 if !solr_result.nil?
49 51 facets = options.include?(:facets) ? solr_result.facets : []
50 52  
51 53 if db_options.empty?
52   - results = solr_result.results
  54 + results = solr_result
53 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 57 if ids.empty?
56 58 ids << -1
57 59 end
... ... @@ -64,8 +66,6 @@ module ActsAsSearchable
64 66  
65 67 results = find(:all, db_options)
66 68 end
67   -
68   - results = results.paginate(pg_options.merge(:total_entries => solr_result.total))
69 69 end
70 70  
71 71 {:results => results, :facets => facets, :all_facets => all_facets}
... ...