Parece que lo que quieres es, de hecho, buscar la concatenación de todos esos campos.
Podría crear una consulta haciendo exactamente esto
... where to_tsvector('italian', name||' '||coalesce(decription,'')...) @@ to_tsquery('$word')
y construya un índice con exactamente el mismo cálculo:
create index your_index on shop
using GIN(to_tsvector('italian',name||' '||coalesce(decription,'')...))
No olvides usar coalesce
en columnas que aceptan valores NULL.