この表現:
to_tsvector('simple', (COALESCE(title::TEXT), ''))
インデックスに対してsargableではありません。
クエリで使用される式のインデックスを正確に宣言する必要があります:
CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', COALESCE(title::TEXT,'')))
(または、インデックスで使用される式をrubyに生成させます。)
複数の列にインデックスを付ける場合は、それらを連結するだけです:
CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', title || ' ' || product_type || ' ' || platform_id))
ただし、ここでも、Rubyは、インデックスを使用するためにまったく同じ式でフィルタリングする必要があります。