Removed unused trigram index on users. Fixed users_fts_index usage.

This commit is contained in:
Ivan Tashkinov 2020-07-08 22:50:15 +03:00
commit 123352ffa1
3 changed files with 33 additions and 13 deletions

View file

@ -69,11 +69,15 @@ defmodule Pleroma.User.Search do
u in query,
where:
fragment(
# The fragment must _exactly_ match `users_fts_index`, otherwise the index won't work
"""
(to_tsvector('simple', ?) || to_tsvector('simple', ?)) @@ to_tsquery('simple', ?)
(
setweight(to_tsvector('simple', regexp_replace(?, '\\W', ' ', 'g')), 'A') ||
setweight(to_tsvector('simple', regexp_replace(coalesce(?, ''), '\\W', ' ', 'g')), 'B')
) @@ to_tsquery('simple', ?)
""",
u.name,
u.nickname,
u.name,
^query_string
)
)
@ -95,9 +99,11 @@ defmodule Pleroma.User.Search do
select_merge: %{
search_rank:
fragment(
"similarity(?, ?) + \
similarity(?, regexp_replace(?, '@.+', '')) + \
similarity(?, trim(coalesce(?, '')))",
"""
similarity(?, ?) +
similarity(?, regexp_replace(?, '@.+', '')) +
similarity(?, trim(coalesce(?, '')))
""",
^query_string,
u.nickname,
^query_string,