I've used the full text search feature in Postgres (even before then, I was vaguely familiar with the topics covered here). It worked unless you misspelled something, or split/merged compound words. Trigrams solved that. Whenever I get around to upgrading, I'd love to use the websearch_to_tsquery function.

https://www.postgresql.org/docs/current/textsearch.html

https://www.postgresql.org/docs/current/pgtrgm.html

PG really needs better ranking at least TF-IDF but also BM25.

There has been some work but not sure when it will be stable, needs a new kind of index:

https://github.com/postgrespro/rum