La recherche plein texte est bonne pour trouver des mots, pas des sous-chaînes.
Pour les recherches de sous-chaînes, vous feriez mieux d'utiliser like '%don%'
avec pg_trgm
extension disponible depuis PostgreSQL 9.1 et using gin (column_name gin_trgm_ops)
ou using gist (column_name gist_trgm_ops)
index. Mais votre index serait très gros (même plusieurs fois plus grand que votre table) et les performances en écriture pas très bonnes.
Il existe un très bon exemple d'utilisation de pg_trgm pour la recherche de sous-chaîne sur sélectionnez * du blog depesz .