From b909e26fa464c12562226f7b7514f03afedd06e9 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Mon, 14 Apr 2014 15:48:58 -0400 Subject: [PATCH] Also use the body of the post when looking for similar topics --- app/models/topic.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/topic.rb b/app/models/topic.rb index 930743c3e..450e8fb2e 100644 --- a/app/models/topic.rb +++ b/app/models/topic.rb @@ -319,11 +319,12 @@ class Topic < ActiveRecord::Base return [] unless raw.present? # For now, we only match on title. We'll probably add body later on, hence the API hook - similar = Topic.select(sanitize_sql_array(["topics.*, similarity(topics.title, :title) AS similarity", title: title])) + similar = Topic.select(sanitize_sql_array(["topics.*, similarity(topics.title, :title) + similarity(p.raw, :raw) AS similarity", title: title, raw: raw])) .visible .where(closed: false, archived: false) .secured(Guardian.new(user)) .listable_topics + .joins("LEFT OUTER JOIN posts AS p ON p.topic_id = topics.id AND p.post_number = 1") .limit(SiteSetting.max_similar_results) .order('similarity desc')