diff --git a/lib/search.rb b/lib/search.rb index 0b3bf5328..25840cd67 100644 --- a/lib/search.rb +++ b/lib/search.rb @@ -481,7 +481,7 @@ class Search t.split(/[\)\(&']/)[0] end.compact! - query = Post.sanitize(all_terms.map {|t| "#{PG::Connection.escape_string(t)}:*"}.join(" #{joiner} ")) + query = Post.sanitize(all_terms.map {|t| "'#{PG::Connection.escape_string(t)}':*"}.join(" #{joiner} ")) "TO_TSQUERY(#{locale || query_locale}, #{query})" end diff --git a/spec/components/search_spec.rb b/spec/components/search_spec.rb index 498887c11..a74bffee1 100644 --- a/spec/components/search_spec.rb +++ b/spec/components/search_spec.rb @@ -447,7 +447,7 @@ describe Search do it 'can parse complex strings using ts_query helper' do str = " grigio:babel deprecated? " - str << "page page on Atmosphere](https://atmospherejs.com/grigio/babel)xxx: aaa'\"bbb" + str << "page page on Atmosphere](https://atmospherejs.com/grigio/babel)xxx: aaa.js:222 aaa'\"bbb" ts_query = Search.ts_query(str, "simple") Post.exec_sql("SELECT to_tsvector('bbb') @@ " << ts_query)