PERF: optimise and improve topic similarity search

FIX: shows up similarity search with blank results
This commit is contained in:
Sam
2014-08-08 12:12:53 +10:00
parent f20c5a02c7
commit 16b7004767
5 changed files with 56 additions and 16 deletions

View File

@ -240,10 +240,10 @@ class Search
self.class.query_locale
end
def self.ts_query(term, locale = nil)
def self.ts_query(term, locale = nil, joiner = "&")
locale = Post.sanitize(locale) if locale
all_terms = term.gsub(/[:()&!'"]/,'').split
query = Post.sanitize(all_terms.map {|t| "#{PG::Connection.escape_string(t)}:*"}.join(" & "))
all_terms = term.gsub(/[*:()&!'"]/,'').squish.split
query = Post.sanitize(all_terms.map {|t| "#{PG::Connection.escape_string(t)}:*"}.join(" #{joiner} "))
"TO_TSQUERY(#{locale || query_locale}, #{query})"
end