Les options de recherche de texte et d'indexation incluent :
-
indexation de texte intégral avec recherche basée sur un dictionnaire, y compris la prise en charge de la recherche par préfixe, par exemple
to_tsvector(mycol) @@ to_tsquery('search:*')
-
text_pattern_ops
index pour prendre en charge les correspondances de chaînes de préfixe, par exempleLIKE 'abc%'
mais pas recherche infixe comme%blah%
;. Unreverse()
d index peut être utilisé pour la recherche de suffixe. -
pg_tgrm
index trigrammes sur les nouvelles versions comme démontré dans ce récent dba Message .stackexchange.com . -
Un outil de recherche et d'indexation externe comme Apache Solr .
D'après les informations minimales données ci-dessus, je dirais que seul un index de trigramme pourra vous aider, puisque vous effectuez des recherches infixes sur une chaîne et ne recherchez pas les mots du dictionnaire. Malheureusement, les index trigrammes sont énormes et plutôt inefficace ; ne vous attendez pas à une sorte d'amélioration magique des performances, et gardez à l'esprit qu'il faut beaucoup de travail pour que le moteur de base de données soit créé et mis à jour.