Le opzioni per la ricerca e l'indicizzazione del testo includono:
-
indicizzazione full-text con ricerca basata su dizionario, incluso il supporto per la ricerca di prefissi, ad esempio
to_tsvector(mycol) @@ to_tsquery('search:*')
-
text_pattern_ops
indici per supportare le corrispondenze delle stringhe di prefisso, ad esempioLIKE 'abc%'
ma non ricerche infisse come%blah%
;. Unreverse()
d index può essere utilizzato per la ricerca dei suffissi. -
pg_tgrm
indici trigramma sulle versioni più recenti come dimostrato in questo recente database .stackexchange.com post . -
Uno strumento esterno di ricerca e indicizzazione come Apache Solr .
Dalle informazioni minime fornite sopra, direi che solo un indice di trigramma sarà in grado di aiutarti, dal momento che stai facendo ricerche infisse su una stringa e non stai cercando parole del dizionario. Sfortunatamente, gli indici dei trigrammi sono enormi e piuttosto inefficiente; non aspettarti una sorta di magico aumento delle prestazioni e tieni presente che richiedono molto lavoro per la creazione e l'aggiornamento del motore di database.