diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2014-12-12 20:49:31 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2014-12-12 20:49:31 +0000 |
commit | 2fe806a4a49cc3fcd7c2b7fe3a385d3a46ffbfd5 (patch) | |
tree | 82f8da72bfdc6e68c83cbecf3ffac2b5bcc9738a /app/models/wiki_page.rb | |
parent | 963719042a12e7833a95396036a662237a7939a0 (diff) | |
download | redmine-2fe806a4a49cc3fcd7c2b7fe3a385d3a46ffbfd5.tar.gz redmine-2fe806a4a49cc3fcd7c2b7fe3a385d3a46ffbfd5.zip |
Rewrites search engine to properly paginate results (#18631).
Instead of counting and retrieving results based on their timestamps, we now load all result ids then load the appropriate results by their ids. This also brings a 2x performance improvement as we search tokens in one of the 2 queries only.
git-svn-id: http://svn.redmine.org/redmine/trunk@13739 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/wiki_page.rb')
-rw-r--r-- | app/models/wiki_page.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index 61e78873d..8d81bce7e 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -33,7 +33,8 @@ class WikiPage < ActiveRecord::Base :url => Proc.new {|o| {:controller => 'wiki', :action => 'show', :project_id => o.wiki.project, :id => o.title}} acts_as_searchable :columns => ['title', "#{WikiContent.table_name}.text"], - :scope => preload(:wiki => :project).joins(:content, {:wiki => :project}), + :scope => joins(:content, {:wiki => :project}), + :preload => {:wiki => :project}, :permission => :view_wiki_pages, :project_key => "#{Wiki.table_name}.project_id" |