From ba053502ded9ec0163af90d3d7a4cb3eb2a4b74e Mon Sep 17 00:00:00 2001 From: Jonathan Xu Date: Thu, 22 Nov 2018 00:00:50 -0500 Subject: [PATCH] test (#4022) --- app/models/node.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/node.rb b/app/models/node.rb index ac5439e966..fa2f05e975 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -35,15 +35,15 @@ def self.search(query:, order: :default, type: :natural, limit: 25) if ActiveRecord::Base.connection.adapter_name == 'Mysql2' if order == :natural + query = connection.quote(query.to_s) if type == :boolean - query = connection.quote(query.to_s + "*") + # Query is done as a boolean full-text search. More info here: https://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html nids = Revision.select("node_revisions.nid, node_revisions.body, node_revisions.title, MATCH(node_revisions.body, node_revisions.title) AGAINST(#{query} IN BOOLEAN MODE) AS score") .where("MATCH(node_revisions.body, node_revisions.title) AGAINST(#{query} IN BOOLEAN MODE)") .limit(limit) .distinct .collect(&:nid) else - query = connection.quote(query.to_s) nids = Revision.select("node_revisions.nid, node_revisions.body, node_revisions.title, MATCH(node_revisions.body, node_revisions.title) AGAINST(#{query} IN NATURAL LANGUAGE MODE) AS score") .where("MATCH(node_revisions.body, node_revisions.title) AGAINST(#{query} IN NATURAL LANGUAGE MODE)") .limit(limit)