2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-06 10:50:21 +08:00

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