also with pg_trgm[0] (mentioned by OP) and pgvector for semantic search you have a pretty powerful search toolkit. for example, combining them for Hybrid Search [1]
[0] https://www.postgresql.org/docs/current/pgtrgm.html
[1] Reciprocal Ranked Fusion: https://supabase.com/docs/guides/ai/hybrid-search