Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // create index example
- ALTER TABLE dic_user ADD COLUMN searchtext TSVECTOR;
- UPDATE dic_user SET searchtext = to_tsvector('simple', login || '' || user_full_name || '' || user_surname || '' || user_patronymic );
- CREATE INDEX searchtext_gin ON dic_user USING GIN(searchtext);
- CREATE TRIGGER ts_searchtext BEFORE INSERT OR UPDATE ON dic_user FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger('searchtext', 'pg_catalog.simple', 'login', 'user_full_name', 'user_surname', 'user_patronymic');
- // scope example:
- function search(query) {
- return query
- ->whereRaw('searchtext @@ to_tsquery(\'simple\', ?)', [search])
- ->orderByRaw('ts_rank(searchtext, to_tsquery(\'simple\', ?)) DESC', [$search])
- }
- // usage example
- await pgr('dic_user').search(query).limit(10) ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement