28 lines
825 B
SQL
28 lines
825 B
SQL
-- Fuzzy search
|
|
-- https://hevodata.com/blog/postgresql-full-text-search-setup/#Fuzzy_Search_vs_Full_Text_Search
|
|
CREATE EXTENSION pg_trgm;
|
|
|
|
-- Create column for seearch tokens
|
|
ALTER TABLE threads
|
|
ADD COLUMN search_tokens TSVECTOR
|
|
GENERATED ALWAYS AS
|
|
(TO_TSVECTOR('english', thread_author) ||
|
|
TO_TSVECTOR('english', thread_title ) ||
|
|
TO_TSVECTOR('english', thread_body )) STORED;
|
|
|
|
-- Create GIN index for search tokens
|
|
CREATE INDEX threads_search_idx
|
|
ON threads
|
|
USING GIN(search_tokens);
|
|
|
|
-- Same for remarks
|
|
ALTER TABLE remarks
|
|
ADD COLUMN search_tokens TSVECTOR
|
|
GENERATED ALWAYS AS
|
|
(TO_TSVECTOR('english', remark_author) ||
|
|
TO_TSVECTOR('english', remark_body )) STORED;
|
|
|
|
CREATE INDEX remarks_search_idx
|
|
ON remarks
|
|
USING GIN(search_tokens);
|