As opções para pesquisa e indexação de texto incluem:
-
indexação de texto completo com pesquisa baseada em dicionário, incluindo suporte para pesquisa de prefixo, por exemplo,to_tsvector(mycol) @@ to_tsquery('search:*')
-
text_pattern_ops
índices para suportar correspondências de string de prefixo, por exemplo,LIKE 'abc%'
mas não pesquisas infixas como%blah%
;. Umreverse()
O índice d pode ser usado para pesquisa de sufixos.
-
pg_tgrm
índices de trigramas em versões mais recentes conforme demonstrado neste banco de dados recente postagem em .stackexchange.com .
-
Uma ferramenta externa de pesquisa e indexação como Apache Solr .
Das informações mínimas fornecidas acima, eu diria que apenas um índice de trigramas poderá ajudá-lo, já que você está fazendo pesquisas infixas em uma string e não procurando palavras do dicionário. Infelizmente, os índices de trigramas são enormes e bastante ineficiente; não espere algum tipo de aumento de desempenho mágico e lembre-se de que eles exigem muito trabalho para o mecanismo de banco de dados construir e manter-se atualizado.