lib/pg_search/features/trigram.rb in pg_search-0.5.7 vs lib/pg_search/features/trigram.rb in pg_search-0.6.0
- old
+ new
@@ -1,19 +1,29 @@
module PgSearch
module Features
class Trigram < Feature
def conditions
- [
- "(#{normalize(document)}) % #{normalize(":query")}",
- {:query => query}
- ]
+ Arel::Nodes::Grouping.new(
+ Arel::Nodes::InfixOperation.new("%", normalized_document, normalize(query))
+ )
end
def rank
- [
- "similarity((#{normalize(document)}), #{normalize(":query")})",
- {:query => query}
- ]
+ Arel::Nodes::Grouping.new(
+ Arel::Nodes::NamedFunction.new(
+ "similarity",
+ [
+ normalized_document,
+ normalize(query)
+ ]
+ )
+ )
+ end
+
+ private
+
+ def normalized_document
+ Arel::Nodes::Grouping.new(normalize(Arel.sql(document)))
end
end
end
end