First version of Solr search.
This commit is contained in:
1 parent
ef96ec841a
commit
1cdc0e24bd
19 files changed
+1738
-62
No files matched your search
+6
-2
@@ -13,8 +13,12 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
|
||||
if !params[:search_query].blank?
|
||||
search_cond = {:is_checked=>true,:is_hidden=>false,:is_pending => false}
|
||||
search_cond.merge!({:bulletin_category_id => "#{params[:category_id]}" }) if !params[:category_id].blank?
|
||||
search = Redis::Search.query("Bulletin", params[:search_query], :conditions =>search_cond,:limit=>Bulletin.all.count)
|
||||
search_result = search.collect{|t| t["id"]}
|
||||
|
||||
@search = Bulletin.solr_search do
|
||||
fulltext params[:search_query]
|
||||
#with(:frontend_search,true)
|
||||
end
|
||||
search_result = @search.results.collect{|result| result.id}
|
||||
|
||||
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_in(_id:search_result).page( params[:page_main]).per(15)
|
||||
else
|
||||
|
||||
+36
-18
@@ -4,7 +4,7 @@ class Bulletin
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Mongoid::MultiParameterAttributes
|
||||
include Redis::Search
|
||||
include Sunspot::Mongo
|
||||
include Impressionist::Impressionable
|
||||
|
||||
BelongsToCategory = :bulletin_category
|
||||
@@ -65,11 +65,29 @@ class Bulletin
|
||||
after_save :save_bulletin_links
|
||||
after_save :save_bulletin_files
|
||||
|
||||
redis_search_index(:title_field => :s_title,
|
||||
:alias_field =>:s_title_en ,
|
||||
:score_field => :view_count,
|
||||
:condition_fields => [:is_checked,:is_hidden,:bulletin_category_id,:is_pending],
|
||||
:ext_fields => [])
|
||||
searchable do
|
||||
text :titles do
|
||||
title_translations.to_a.collect{|t| t[1]}
|
||||
end
|
||||
text :texts do
|
||||
text_translations.to_a.collect{|t| t[1]}
|
||||
end
|
||||
# text :text do
|
||||
# a = (title_translations["zh_tw"] + title_translations["en"])
|
||||
# a
|
||||
# end
|
||||
boolean :frontend_search do
|
||||
!is_hidden && !is_pending && is_checked
|
||||
end
|
||||
|
||||
integer :view_count
|
||||
string :bulletin_category_id
|
||||
end
|
||||
# redis_search_index(:title_field => :s_title,
|
||||
# :alias_field =>:s_title_en ,
|
||||
# :score_field => :view_count,
|
||||
# :condition_fields => [:is_checked,:is_hidden,:bulletin_category_id,:is_pending],
|
||||
# :ext_fields => [])
|
||||
|
||||
|
||||
# def gen_title_for_search
|
||||
@@ -78,21 +96,21 @@ class Bulletin
|
||||
|
||||
#alias_method
|
||||
|
||||
def s_title
|
||||
self.title_translations["zh_tw"]
|
||||
end
|
||||
# def s_title
|
||||
# self.title_translations["zh_tw"]
|
||||
# end
|
||||
|
||||
def s_title_was
|
||||
self.title_was["zh_tw"]
|
||||
end
|
||||
# def s_title_was
|
||||
# self.title_was["zh_tw"]
|
||||
# end
|
||||
|
||||
def s_title_en
|
||||
self.title_translations["en"]
|
||||
end
|
||||
# def s_title_en
|
||||
# self.title_translations["en"]
|
||||
# end
|
||||
|
||||
def s_title_en_was
|
||||
self.title_was["en"]
|
||||
end
|
||||
# def s_title_en_was
|
||||
# self.title_was["en"]
|
||||
# end
|
||||
|
||||
# def s_text_en
|
||||
# Nokogiri::HTML(self.text.en).text
|
||||
|
||||
Vendored
+6
-2
@@ -13,8 +13,12 @@ class Panel::News::FrontEnd::NewsBulletinsController < OrbitWidgetController
|
||||
if !params[:search_query].blank?
|
||||
search_cond = {:is_checked=>true,:is_hidden=>false,:is_pending=>false,:is_pending=>false}
|
||||
search_cond.merge!({:news_bulletin_category_id => "#{params[:category_id]}" }) if !params[:category_id].blank?
|
||||
search = Redis::Search.query("NewsBulletin", params[:search_query], :conditions =>search_cond,:limit=>NewsBulletin.all.count)
|
||||
search_result = search.collect{|t| t["id"]}
|
||||
|
||||
@search = NewsBulletin.solr_search do
|
||||
fulltext params[:search_query]
|
||||
with(:frontend_search,true)
|
||||
end
|
||||
search_result = @search.results.collect{|result| result.id}
|
||||
@news_bulletins = NewsBulletin.all.available_for_lang(I18n.locale).can_display.any_in(_id:search_result).page( params[:page_main]).per(10)
|
||||
else
|
||||
date_now = Time.now
|
||||
|
||||
+34
-18
@@ -4,7 +4,7 @@ class NewsBulletin
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Mongoid::MultiParameterAttributes
|
||||
include Redis::Search
|
||||
include Sunspot::Mongo
|
||||
include Impressionist::Impressionable
|
||||
|
||||
BelongsToCategory = :news_bulletin_category
|
||||
@@ -91,31 +91,47 @@ class NewsBulletin
|
||||
"news_bulletin"
|
||||
end
|
||||
|
||||
redis_search_index(:title_field => :s_title,
|
||||
:alias_field => :s_title_en,
|
||||
:score_field => :view_count,
|
||||
:condition_fields => [:is_checked,:is_hidden,:news_bulletin_category_id,:is_pending],
|
||||
:ext_fields =>[])
|
||||
searchable do
|
||||
text :titles do
|
||||
title_translations.to_a.collect{|t| t[1]}
|
||||
end
|
||||
text :texts do
|
||||
text_translations.to_a.collect{|t| t[1]}
|
||||
end
|
||||
integer :view_count
|
||||
|
||||
boolean :frontend_search do
|
||||
!is_hidden && !is_pending && is_checked
|
||||
end
|
||||
|
||||
|
||||
string :news_bulletin_category_id
|
||||
end
|
||||
# redis_search_index(:title_field => :s_title,
|
||||
# :alias_field => :s_title_en,
|
||||
# :score_field => :view_count,
|
||||
# :condition_fields => [:is_checked,:is_hidden,:news_bulletin_category_id,:is_pending],
|
||||
# :ext_fields =>[])
|
||||
|
||||
# def gen_title_for_search
|
||||
# # [s_title,s_title_en,s_text_en,s_text_zh_tw].join(' ')
|
||||
# end
|
||||
|
||||
def s_title
|
||||
self.title_translations["zh_tw"]
|
||||
end
|
||||
# def s_title
|
||||
# self.
|
||||
# end
|
||||
|
||||
def s_title_was
|
||||
self.title_was["zh_tw"]
|
||||
end
|
||||
# def s_title_was
|
||||
# self.title_was["zh_tw"]
|
||||
# end
|
||||
|
||||
def s_title_en
|
||||
self.title_translations["en"]
|
||||
end
|
||||
# def s_title_en
|
||||
# self.title_translations["en"]
|
||||
# end
|
||||
|
||||
def s_title_en_was
|
||||
self.title_was["en"]
|
||||
end
|
||||
# def s_title_en_was
|
||||
# self.title_was["en"]
|
||||
# end
|
||||
|
||||
# def s_text_en
|
||||
# Nokogiri::HTML(self.text.en).text
|
||||
|
||||
Reference in new issue
Block a user