Alternativ för textsökning och indexering inkluderar:
-
indexering i fulltext med ordboksbaserad sökning, inklusive stöd för prefixsökning, t.ex.
to_tsvector(mycol) @@ to_tsquery('search:*')
-
text_pattern_ops
index för att stödja prefixsträngmatchningar, t.ex.LIKE 'abc%'
men inte infix-sökningar som%blah%
;. Enreverse()
d index kan användas för suffixsökning. -
pg_tgrm
trigramindex på nyare versioner som visas i denna senaste dba .stackexchange.com inlägg . -
Ett externt sök- och indexeringsverktyg som Apache Solr .
Från den minimala information som ges ovan skulle jag säga att endast ett trigramindex kommer att kunna hjälpa dig, eftersom du gör infixsökningar på en sträng och inte letar efter ordbok. Tyvärr är trigramindex stora och ganska ineffektivt; förvänta dig inte någon form av magisk prestandaökning, och kom ihåg att det tar mycket arbete för databasmotorn att bygga och hålla sig uppdaterad.