diff options
author | Vincent Ambo <mail@tazj.in> | 2021-04-05T14·55+0200 |
---|---|---|
committer | Vincent Ambo <mail@tazj.in> | 2021-04-05T15·01+0200 |
commit | 8142149e28991b15affc5e4576a033e0ada9778b (patch) | |
tree | 44387ac5cae9c3a39e1810909ef2ee92e0278709 /web/converse/migrations/2018-04-14-170750_search-index | |
parent | 386afdc794eefd5bcbc47a3fd7b898a07f69f978 (diff) | |
parent | 09168021e7405f6b83798d0b43aa6e69e744ae87 (diff) |
feat(web/converse): Import repository r/2440
Imports the converse forum software I wrote a few years ago. I want to clean this up a bit and try using Hotwire with it. Note: The original repository was AGPL-3.0 licensed. I'm the copyright holder and have relicensed it to GPL-3.0 in the commit that is being merged. Imported from: https://github.com/tazjin/converse git-subtree-dir: web/converse git-subtree-mainline: 386afdc794eefd5bcbc47a3fd7b898a07f69f978 git-subtree-split: 09168021e7405f6b83798d0b43aa6e69e744ae87 Change-Id: Ia8b587db5174ef5b3c52910d3d027199150c58e0
Diffstat (limited to 'web/converse/migrations/2018-04-14-170750_search-index')
-rw-r--r-- | web/converse/migrations/2018-04-14-170750_search-index/down.sql | 2 | ||||
-rw-r--r-- | web/converse/migrations/2018-04-14-170750_search-index/up.sql | 21 |
2 files changed, 23 insertions, 0 deletions
diff --git a/web/converse/migrations/2018-04-14-170750_search-index/down.sql b/web/converse/migrations/2018-04-14-170750_search-index/down.sql new file mode 100644 index 000000000000..c57e66290201 --- /dev/null +++ b/web/converse/migrations/2018-04-14-170750_search-index/down.sql @@ -0,0 +1,2 @@ +DROP INDEX idx_fts_search; +DROP MATERIALIZED VIEW search_index; diff --git a/web/converse/migrations/2018-04-14-170750_search-index/up.sql b/web/converse/migrations/2018-04-14-170750_search-index/up.sql new file mode 100644 index 000000000000..6b7d90eca63c --- /dev/null +++ b/web/converse/migrations/2018-04-14-170750_search-index/up.sql @@ -0,0 +1,21 @@ +-- Prepare a materialised view containing the tsvector data for all +-- threads and posts. This view is indexed using a GIN-index to enable +-- performant full-text searches. +-- +-- For now the query language is hardcoded to be English. + +CREATE MATERIALIZED VIEW search_index AS + SELECT p.id AS post_id, + p.author_name AS author, + t.id AS thread_id, + t.title AS title, + p.body AS body, + setweight(to_tsvector('english', t.title), 'B') || + setweight(to_tsvector('english', p.body), 'A') || + setweight(to_tsvector('simple', t.author_name), 'C') || + setweight(to_tsvector('simple', p.author_name), 'C') AS document + FROM posts p + JOIN threads t + ON t.id = p.thread_id; + +CREATE INDEX idx_fts_search ON search_index USING gin(document); |