ich eine Abfrage mit einer Reihe von Test haben Felder etwas wie folgt aus:Postgresql ILIKE gegen TSEARCH
SELECT * FROM some-table
WHERE field1 ILIKE "%thing%"
OR field2 ILIKE "%thing"
OR field3 ILIKE "%thing";
Die Spalten so ziemlich alle varchar (50) oder so sind. Jetzt verstehe ich, um die Leistung zu verbessern. Ich sollte die Felder indizieren, auf denen die Suche funktioniert. Sollte ich darüber nachdenken, ILIKE durch TSEARCH komplett zu ersetzen?
pg_trgm ist sehr hilfreich. Für Django-Benutzer: Index auf 'Upper (your_text_field)', weil Django 'upper (x) wie obere (y)' Abfragen anstelle von 'ilike' ausgibt. Wenn das Feld ohne "Upper" indexiert wird, wird der Index in diesen Abfragen nicht verwendet. – Risadinha