Il semble que ce que vous voulez, c'est en fait rechercher la concaténation de tous ces champs.
Vous pourriez construire une requête faisant exactement cela
... where to_tsvector('italian', name||' '||coalesce(decription,'')...) @@ to_tsquery('$word')
et construire un index sur exactement le même calcul :
create index your_index on shop
using GIN(to_tsvector('italian',name||' '||coalesce(decription,'')...))
N'oubliez pas d'utiliser coalesce
sur les colonnes acceptant les valeurs NULL.