switch fuzzy autocomplete to spellcorrect intent
This commit is contained in:
@@ -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"))
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user