Sembra quello che vuoi, infatti cercare la concatenazione di tutti quei campi.
Potresti creare una query facendo esattamente questo
... where to_tsvector('italian', name||' '||coalesce(decription,'')...) @@ to_tsquery('$word')
e costruisci un indice sullo stesso identico calcolo:
create index your_index on shop
using GIN(to_tsvector('italian',name||' '||coalesce(decription,'')...))
Non dimenticare di usare coalesce
su colonne che accettano valori NULL.