Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE events (name text NOT NULL, description text NOT NULL);
- INSERT INTO events VALUES
- ('Phaeleh Live','Phaeleh, one of the UK''s most vital production talents and a key innovator')
- ,('Radar 009','Radar Radio''s weekly parties re-launch for 2018 with some of their biggest line-ups yet.')
- ,('14anger','Collector of techno classics, admirer of futuristic sequencing, he weaves these together for an eternal timed prophecy rave');
- CREATE MATERIALIZED VIEW unique_lexeme AS
- SELECT word FROM ts_stat(
- $TS_STAT$
- SELECT to_tsvector('simple', events.name) || to_tsvector('english', events.description) as document
- FROM events
- $TS_STAT$);
- WITH word_similarity AS (
- SELECT word
- FROM unique_lexeme
- WHERE similarity(word, 'par') > 0.1
- ORDER BY word <-> 'par'
- LIMIT 1
- )
- SELECT events_name,
- events_description
- FROM (
- SELECT events.name AS events_name,
- events.description AS events_description,
- to_tsvector('simple', events.name) || to_tsvector('english', events.description) as document
- FROM events) events_search, word_similarity
- WHERE events_search.document @@ to_tsquery('english', word_similarity.word || ':*')
- ORDER BY ts_rank(events_search.document, to_tsquery('english', word_similarity.word || ':*')) DESC;
Add Comment
Please, Sign In to add comment