Merge branch 'failing-search-fixes' into 'develop'

User Search: Remove superfluous setweight and random test.

See merge request pleroma/pleroma!1935
This commit is contained in:
rinpatch 2019-11-04 16:28:55 +00:00
commit fee1276963
2 changed files with 1 additions and 18 deletions

View file

@ -54,15 +54,7 @@ defp search_query(query_string, for_user, following) do
|> maybe_restrict_local(for_user) |> maybe_restrict_local(for_user)
end end
@nickname_regex ~r/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~\-@]+$/
defp fts_search(query, query_string) do defp fts_search(query, query_string) do
{nickname_weight, name_weight} =
if String.match?(query_string, @nickname_regex) do
{"A", "B"}
else
{"B", "A"}
end
query_string = to_tsquery(query_string) query_string = to_tsquery(query_string)
from( from(
@ -70,12 +62,10 @@ defp fts_search(query, query_string) do
where: where:
fragment( fragment(
""" """
(setweight(to_tsvector('simple', ?), ?) || setweight(to_tsvector('simple', ?), ?)) @@ to_tsquery('simple', ?) (to_tsvector('simple', ?) || to_tsvector('simple', ?)) @@ to_tsquery('simple', ?)
""", """,
u.name, u.name,
^name_weight,
u.nickname, u.nickname,
^nickname_weight,
^query_string ^query_string
) )
) )

View file

@ -51,13 +51,6 @@ test "finds a user by full or partial name" do
end) end)
end end
test "finds users, preferring nickname matches over name matches" do
u1 = insert(:user, %{name: "lain", nickname: "nick1"})
u2 = insert(:user, %{nickname: "lain", name: "nick1"})
assert [u2.id, u1.id] == Enum.map(User.search("lain"), & &1.id)
end
test "finds users, considering density of matched tokens" do test "finds users, considering density of matched tokens" do
u1 = insert(:user, %{name: "Bar Bar plus Word Word"}) u1 = insert(:user, %{name: "Bar Bar plus Word Word"})
u2 = insert(:user, %{name: "Word Word Bar Bar Bar"}) u2 = insert(:user, %{name: "Word Word Bar Bar Bar"})