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.
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: