Tôi có một truy vấn với một số thử nghiệm các lĩnh vực một cái gì đó như thế này:PostgreSQL iLike so TSEARCH
SELECT * FROM some-table
WHERE field1 ILIKE "%thing%"
OR field2 ILIKE "%thing"
OR field3 ILIKE "%thing";
Các cột được khá nhiều tất cả varchar (50) hoặc ở vùng lân cận. Bây giờ tôi hiểu để cải thiện hiệu suất tôi nên lập chỉ mục các lĩnh vực mà hoạt động tìm kiếm hoạt động. Tôi có nên xem xét thay thế ILIKE bằng TSEARCH hoàn toàn không?
pg_trgm rất hữu ích. Đối với người dùng Django: chỉ mục trên 'upper (your_text_field)' vì Django phát hành 'upper (x) như upper (y)' query thay vì 'ilike'. Nếu trường được lập chỉ mục mà không có 'upper' thì chỉ mục sẽ không được sử dụng trong các truy vấn đó. – Risadinha