Pretty much all these engines (and PG) are fast enough.
Gist/Gin indexes are great and do a fine job to make millions of records searchable in very few milliseconds.
The problem is accuracy.
I’ve tried a few of these and accuracy is wildly different with most of them.
Accuracy depends on how much you index.
For example, even with decently designed weighting: If you index title, subtitle, tags and content — too much of content ruin relevancy.
And yes, we have proper relevancy sorting setup nicely.
The best is something like elastic search, but it does not integrate nicely with PG for our use case. Because of the multi tenant nature of our data setup.
PG will get us to that magic 80% but that leaves the all important 20% which is not great.
Not to mention the inability to index and search Asian character sets.
So even though we exclusively use it, it’s not great and every time our team can’t find something that drives my team into the Psql CLI — I start searching for alternatives again.
The big brick wall is updating, inserting and deleting from an external solution fast enough so we don’t miss stuff.
And quickly searching multi tenant records in that external solution.
And no I’m not ready to use ES as my primary database.
Yup this is exactly the problem, which is why I'm surprised with such decent extension support and heavy use no body has created something that builds better analysis and query pipelines specifically for full text search on top of these databases to solve the relevancy issues.
Quite deep Postgres/Elasticsearch integration