From 3025db66d7fff4a2e25961da1b146a8ee2f037c7 Mon Sep 17 00:00:00 2001 From: Albert Yi Date: Wed, 5 Sep 2018 09:41:25 -0700 Subject: [PATCH] switch fuzzy autocomplete to spellcorrect intent --- app/logical/tag_autocomplete.rb | 5 +++-- test/models/tag_autocomplete_test.rb | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/logical/tag_autocomplete.rb b/app/logical/tag_autocomplete.rb index a47099ff7..7a3fd8d78 100644 --- a/app/logical/tag_autocomplete.rb +++ b/app/logical/tag_autocomplete.rb @@ -17,7 +17,7 @@ module TagAutocomplete query, search_exact(query, 3) + search_prefix(query, 3) + - search_fuzzy(query, 3) + + search_correct(query, 2) + search_aliases(query, 3) ) end @@ -38,7 +38,7 @@ module TagAutocomplete .map {|row| Result.new(*row, nil, 1.0)} end - def search_fuzzy(query, n=5) + def search_correct(query, n=2) if CurrentUser.id != 1 return [] end @@ -49,6 +49,7 @@ module TagAutocomplete Tag .where("name % ?", query) + .where("abs(length(name) - ?) <= 2", query.size) .where("name like ? escape E'\\\\'", query[0].to_escaped_for_sql_like + '%') .where("post_count > 0") .order(Arel.sql("similarity(name, #{Tag.connection.quote(query)}) DESC")) diff --git a/test/models/tag_autocomplete_test.rb b/test/models/tag_autocomplete_test.rb index 7a5db933c..7a3b95189 100644 --- a/test/models/tag_autocomplete_test.rb +++ b/test/models/tag_autocomplete_test.rb @@ -29,7 +29,7 @@ class TagAutocompleteTest < ActiveSupport::TestCase end end - context "#search_fuzzy" do + context "#search_correct" do setup do CurrentUser.stubs(:id).returns(1) @@ -60,7 +60,7 @@ class TagAutocompleteTest < ActiveSupport::TestCase @tags[1], @tags[2] ].map(&:name) - assert_equal(expected, subject.search_fuzzy("abcd", 3).map(&:name)) + assert_equal(expected, subject.search_correct("abcd", 3).map(&:name)) end end