diff options
author | Maxim Filippov <colixer@gmail.com> | 2019-03-20 01:37:40 +0300 |
---|---|---|
committer | Maxim Filippov <colixer@gmail.com> | 2019-03-20 01:37:40 +0300 |
commit | ed8a2935f55b5271e65955ddb7446e322439599b (patch) | |
tree | 642364de4dddf011901d13be613c240a2f668d78 /lib | |
parent | 9b80203ea5d3a43ccba15f20172c790e127038f9 (diff) | |
download | pleroma-ed8a2935f55b5271e65955ddb7446e322439599b.tar.gz |
Use ILIKE to search users
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 8df276ae0..bf84eaf7f 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -788,34 +788,26 @@ defmodule Pleroma.User do @spec search_for_admin(%{ query: binary(), - admin: Pleroma.User.t(), local: boolean(), page: number(), page_size: number() }) :: {:ok, [Pleroma.User.t()], number()} def search_for_admin(%{ query: term, - admin: admin, local: local, page: page, page_size: page_size }) do - term = String.trim_leading(term, "@") + maybe_local_query = User |> maybe_local_user_query(local) - local_paginated_query = - User - |> maybe_local_user_query(local) + search_query = from(u in maybe_local_query, where: ilike(u.nickname, ^"%#{term}%")) + count = search_query |> Repo.aggregate(:count, :id) + results = + search_query |> paginate(page, page_size) + |> Repo.all() - search_query = fts_search_subquery(term, local_paginated_query) - - count = - term - |> fts_search_subquery() - |> maybe_local_user_query(local) - |> Repo.aggregate(:count, :id) - - {:ok, do_search(search_query, admin), count} + {:ok, results, count} end def search(query, resolve \\ false, for_user \\ nil) do |