Biểu thức này:
to_tsvector('simple', (COALESCE(title::TEXT), ''))
không thể phân biệt được với chỉ mục của bạn.
Bạn nên khai báo chỉ mục trên chính xác biểu thức được sử dụng trong truy vấn:
CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', COALESCE(title::TEXT,'')))
(hoặc làm cho ruby tạo ra biểu thức được sử dụng trong chỉ mục).
Nếu bạn muốn nhiều cột được lập chỉ mục, chỉ cần nối chúng:
CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', title || ' ' || product_type || ' ' || platform_id))
nhưng một lần nữa, Ruby nên lọc trên cùng một biểu thức để chỉ mục được sử dụng.