fix exact match queries
[opensuse:software-o-o.git] / app / controllers / statistic_controller.rb
1 class StatisticController < ApplicationController
2
3   TIME_LIMIT = DateTime.parse 3.months.ago.to_s
4
5   def index
6     @top_searches = top_searches
7     @failed_searches = failed_searches
8   end
9
10
11   private
12
13   def top_searches
14     Rails.cache.fetch('top_searches', :expires_in => 2.hours) do
15       result = ActiveRecord::Base.connection.execute("select query, count(*) as c from search_histories where query is NOT NULL AND count > 0 AND created_at > '#{TIME_LIMIT}' group by query order by c desc limit 15;")
16       top = Array.new
17       result.each do |entry|
18         top << { :query => entry[0].strip.downcase, :count => entry[1].to_i}
19       end
20       top
21     end
22   end
23
24
25   def failed_searches
26     Rails.cache.fetch('failed_searches', :expires_in => 2.hours) do
27       result = ActiveRecord::Base.connection.execute("select query, count(*) as c from search_histories where query is NOT NULL AND count = 0 AND created_at > '#{TIME_LIMIT}' group by query order by c desc limit 15; ")
28       top = Array.new
29       result.each do |entry|
30         top << { :query => entry[0].strip.downcase, :count => entry[1].to_i}
31       end
32       top
33     end
34   end
35
36 end