switch fuzzy autocomplete to spellcorrect intent

This commit is contained in:
Albert Yi
2018-09-05 09:41:25 -07:00
parent 314341773c
commit 3025db66d7
2 changed files with 5 additions and 4 deletions

View File

@@ -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"))

View File

@@ -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