Mam zapytanie z numerem badania pola tak:Postgresql ILIKE kontra pełnotekstowego
SELECT * FROM some-table
WHERE field1 ILIKE "%thing%"
OR field2 ILIKE "%thing"
OR field3 ILIKE "%thing";
Kolumny są prawie wszystkich varchar (50) lub w tej okolicy. Rozumiem, że w celu poprawy wydajności powinienem indeksować pola, na których działa wyszukiwanie. Czy powinienem rozważyć całkowitą zamianę ILIKE na TSEARCH?
pg_trgm jest bardzo pomocny. Dla użytkowników Django: indeks na 'upper (your_text_field)', ponieważ Django wydaje 'upper (x) like upper (y)' queries zamiast 'ilike'. Jeśli pole jest indeksowane bez 'upper', indeks nie będzie używany w tych zapytaniach. – Risadinha