diff --git a/Gemfile b/Gemfile index 3f1d5ee..c055592 100755 --- a/Gemfile +++ b/Gemfile @@ -108,3 +108,6 @@ gem 'kaminari' gem 'bootstrap-kaminari-views', :git=>'git://github.com/matenia/bootstrap-kaminari-views.git' #gem 'will_paginate', :git=>'git://github.com/mislav/will_paginate.git' #gem 'bootstrap-will_paginate' + +gem 'sunspot_rails' +gem 'sunspot_solr' diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index ea3b682..ee897d1 100755 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -32,12 +32,17 @@ class HomeController < ApplicationController def search unless params['query'].nil? || params['query'].empty? - if can?(:showintern, Neuigkeit) - @neuigkeiten=Neuigkeit.search(params['query']) - else - @neuigkeiten =Neuigkeit.search(params['query']).public + @results = Sunspot.search Neuigkeit, Fetprofile do + fulltext params['query'] end - @fetprofiles = Fetprofile.search(params['query']) + @neuigkeiten=[]; + if can?(:showintern, Neuigkeit) + #@neuigkeiten=Neuigkeit.search(params['query']) + else + # @neuigkeiten =Neuigkeit.search(params['query']).public + end + # @fetprofiles = Fetprofile.search(params['query']) + @fetprofiles=[] if can?(:showintern, Neuigkeit) @themen=Thema.search(params['query']) else diff --git a/app/models/fetprofile.rb b/app/models/fetprofile.rb index 6af5773..e44b63b 100644 --- a/app/models/fetprofile.rb +++ b/app/models/fetprofile.rb @@ -26,7 +26,7 @@ class Fetprofile < ActiveRecord::Base validate :validate_birthday GESCHLECHT={0=>"gendered", 1=>"maennlich", 2=>"weiblich"} has_many :users - scope :search, ->(query) {where("nachname like ? or vorname like ? or short like ?", "%#{query}%", "%#{query}%", "%#{query}%")} +# scope :search, ->(query) {where("nachname like ? or vorname like ? or short like ?", "%#{query}%", "%#{query}%", "%#{query}%")} accepts_nested_attributes_for :memberships, :reject_if=>lambda{|a| a[:typ].blank?|| a[:start].blank? ||a[:gremium_id].blank?}, :allow_destroy=>true has_many :nlinks, as: :link @@ -64,4 +64,9 @@ end nil end end + searchable do + text :fetmailalias, :short, :fetmail + text :vorname, :nachname, :boost=>2.0 + end + end diff --git a/app/models/neuigkeit.rb b/app/models/neuigkeit.rb index 37cea90..9f36e6e 100755 --- a/app/models/neuigkeit.rb +++ b/app/models/neuigkeit.rb @@ -32,7 +32,7 @@ class Neuigkeit < ActiveRecord::Base scope :public, ->{includes(:rubrik).where("rubriken.public"=>true)} scope :intern, ->{includes(:rubrik).where("rubriken.public"=>false)} - scope :search, ->(query) {where("text like ? or title like ?", "%#{query}%", "%#{query}%")} +# scope :search, ->(query) {where("text like ? or title like ?", "%#{query}%", "%#{query}%")} LINKTYPES=["Thema", "Gallery", "Lva","Studium","Fetprofile", "Gremium"] accepts_nested_attributes_for :calentries, :allow_destroy=>true , :reject_if=> lambda{|a| a[:start].blank?} before_validation :sanitize @@ -83,4 +83,8 @@ class Neuigkeit < ActiveRecord::Base calentry.object=self end end + searchable do + text :text, :datum + text :title, :boost=>3.0 + end end diff --git a/app/views/home/_search_results.html.erb b/app/views/home/_search_results.html.erb index 9719807..e640bd6 100644 --- a/app/views/home/_search_results.html.erb +++ b/app/views/home/_search_results.html.erb @@ -1,4 +1,10 @@ +<% unless @results.nil? %> +<%= @results.results.each do |res| %> +<%= render res %> +<% end %> +<% end %> + <% unless @neuigkeiten.empty? %>