summaryrefslogtreecommitdiff
path: root/priv
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2018-05-16 17:55:20 +0200
committerlain <lain@soykaf.club>2018-05-16 17:55:20 +0200
commit1d4bbec6b3239bb83b500a6a90e6686cb682cfac (patch)
tree784685762399e4e2d2e630a2f20ece05b91b6809 /priv
parent2e9aa16b862fac043a5c1a538fc6eacdaa7ec56f (diff)
downloadpleroma-1d4bbec6b3239bb83b500a6a90e6686cb682cfac.tar.gz
pleroma-1d4bbec6b3239bb83b500a6a90e6686cb682cfac.zip
Fix User search.
Now uses a trigram based search. This is a lot faster and gives better results. Closes #185.
Diffstat (limited to 'priv')
-rw-r--r--priv/repo/migrations/20180516144508_add_trigram_extension.exs15
-rw-r--r--priv/repo/migrations/20180516154905_create_user_trigram_index.exs7
2 files changed, 22 insertions, 0 deletions
diff --git a/priv/repo/migrations/20180516144508_add_trigram_extension.exs b/priv/repo/migrations/20180516144508_add_trigram_extension.exs
new file mode 100644
index 000000000..f2f0fca86
--- /dev/null
+++ b/priv/repo/migrations/20180516144508_add_trigram_extension.exs
@@ -0,0 +1,15 @@
+defmodule Pleroma.Repo.Migrations.AddTrigramExtension do
+ use Ecto.Migration
+ require Logger
+
+ def up do
+ Logger.warn("ATTENTION ATTENTION ATTENTION\n")
+ Logger.warn("This will try to create the pg_trgm extension on your database. If your database user does NOT have the necessary rights, you will have to do it manually and re-run the migrations.\nYou can probably do this by running the following:\n")
+ Logger.warn("sudo -u postgres psql pleroma_dev -c \"create extension if not exists pg_trgm\"\n")
+ execute("create extension if not exists pg_trgm")
+ end
+
+ def down do
+ execute("drop extension if exists pg_trgm")
+ end
+end
diff --git a/priv/repo/migrations/20180516154905_create_user_trigram_index.exs b/priv/repo/migrations/20180516154905_create_user_trigram_index.exs
new file mode 100644
index 000000000..abfa4b3cc
--- /dev/null
+++ b/priv/repo/migrations/20180516154905_create_user_trigram_index.exs
@@ -0,0 +1,7 @@
+defmodule Pleroma.Repo.Migrations.CreateUserTrigramIndex do
+ use Ecto.Migration
+
+ def change do
+ create index(:users, ["(nickname || name) gist_trgm_ops"], name: :users_trigram_index, using: :gist)
+ end
+end