diff options
author | M Somerville <matthew-github@dracos.co.uk> | 2020-08-05 15:56:10 +0100 |
---|---|---|
committer | M Somerville <matthew-github@dracos.co.uk> | 2020-08-06 20:28:57 +0100 |
commit | 7af4f2cc87cd6ff55501bb2856193a03fe72158c (patch) | |
tree | e2c1f396bb4a34220379b94d9e25d4671f29b052 /db | |
parent | 21efead606530cb754bb7b54586dbb8c1a1502ca (diff) |
Add database index for user full text search.
Diffstat (limited to 'db')
-rw-r--r-- | db/downgrade_0074---0073.sql | 1 | ||||
-rw-r--r-- | db/schema.sql | 6 | ||||
-rw-r--r-- | db/schema_0074-add-users-full-text-search-index.sql | 6 |
3 files changed, 13 insertions, 0 deletions
diff --git a/db/downgrade_0074---0073.sql b/db/downgrade_0074---0073.sql new file mode 100644 index 000000000..f900cc1d7 --- /dev/null +++ b/db/downgrade_0074---0073.sql @@ -0,0 +1 @@ +DROP INDEX users_fulltext_idx; diff --git a/db/schema.sql b/db/schema.sql index f198a287b..2c0cedb8d 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -41,6 +41,12 @@ create table users ( ); CREATE UNIQUE INDEX users_email_verified_unique ON users (email) WHERE email_verified; CREATE UNIQUE INDEX users_phone_verified_unique ON users (phone) WHERE phone_verified; +create index users_fulltext_idx on users USING GIN( + to_tsvector( + 'english', + translate(id || ' ' || coalesce(name,'') || ' ' || coalesce(email,'') || ' ' || coalesce(phone,''), '@.', ' ') + ) +); -- Record details of reporting bodies, including open311 configuration details create table body ( diff --git a/db/schema_0074-add-users-full-text-search-index.sql b/db/schema_0074-add-users-full-text-search-index.sql new file mode 100644 index 000000000..dc743bd47 --- /dev/null +++ b/db/schema_0074-add-users-full-text-search-index.sql @@ -0,0 +1,6 @@ +CREATE INDEX CONCURRENTLY users_fulltext_idx on users USING GIN( + to_tsvector( + 'DB_FULL_TEXT_SEARCH_CONFIG', + translate(id || ' ' || coalesce(name,'') || ' ' || coalesce(email,'') || ' ' || coalesce(phone,''), '@.', ' ') + ) +); |