Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.25 KB | None | 0 0
  1.  
  2. # ranked_txtsearch_hospital_trigger definition
  3. BEGIN                                                                                    
  4. NEW.txtsearch_idx_col :=                                                                  
  5. setweight(to_tsvector('pg_catalog.english',COALESCE(NEW.short_name,'')),'A') ||          
  6. setweight(to_tsvector('pg_catalog.english',COALESCE(NEW.name,'')),'A') ||                
  7. setweight(to_tsvector('pg_catalog.english',COALESCE(NEW.short_name_legends,'')),'A') ||  
  8. setweight(to_tsvector('pg_catalog.english',COALESCE(NEW.city,'')), 'B') ||                
  9. setweight(to_tsvector('pg_catalog.english',COALESCE(NEW.street,'')), 'C');                
  10. RETURN NEW;                                                                              
  11. END
  12.  
  13. # TRIGGER ON hospital TABLE
  14. ranked_hospital_tsvector_update BEFORE INSERT OR UPDATE ON hospital FOR EACH ROW EXECUTE PROCEDURE ranked_txtsearch_hospital_trigger()
  15.  
  16. # my query
  17. SELECT
  18.     h.short_name AS name,
  19.     h.city,
  20.     h.state,
  21.     h.street,
  22.     h.id,
  23.     ts_rank('{0,0,0.10,0.90}',
  24.     h.txtsearch_idx_col,q) AS therank,
  25.     q
  26. FROM
  27.     to_tsquery('english','" . implode(' & ', explode(" ", trim($term))) . "') AS q,
  28.     hospital h
  29. WHERE  
  30.     h.txtsearch_idx_col @@ q
  31. ORDER BY therank DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement