Det ser ud til, at det, du ønsker, faktisk er at søge efter sammenkædningen af alle disse felter.
Du kan bygge en forespørgsel, der gør præcis dette
... where to_tsvector('italian', name||' '||coalesce(decription,'')...) @@ to_tsquery('$word')
og opbyg et indeks på nøjagtig den samme beregning:
create index your_index on shop
using GIN(to_tsvector('italian',name||' '||coalesce(decription,'')...))
Glem ikke at bruge coalesce
på kolonner, der accepterer NULL-værdier.