Es sieht so aus, als ob Sie tatsächlich die Verkettung all dieser Felder durchsuchen möchten.
Sie könnten eine Abfrage erstellen, die genau dies tut
... where to_tsvector('italian', name||' '||coalesce(decription,'')...) @@ to_tsquery('$word')
und erstellen Sie einen Index auf genau derselben Berechnung:
create index your_index on shop
using GIN(to_tsvector('italian',name||' '||coalesce(decription,'')...))
Vergessen Sie nicht, coalesce
zu verwenden auf Spalten, die NULL-Werte akzeptieren.