Anyway, on CTX I use PostgreSQL for storing things that deserve to be relational - job control, batching, users, accounts, billing, invitation codes...
All the indexed content is in an Elastic Search cluster (http://elastic.co if you're unfamiliar - it's a specialised search indexing data store built atop Apache Lucene)
* though actually PostgreSQL has a really good capability as a JSON store that means people do sometimes use it as a NoSQL solution
Its text search solutions come close to ElasticSearch, with - surprisingly - even better performance.
One thing I would like to understand is how the PostgreSQL search experience scales with data volume. My main cluster for CTX will potentially get (very) big and I don't know enough about PostgreSQL, multi-master and full-text search across large amounts of data.
I'll definitely do some digging though, thanks!
I think your assumption is/was correct. And I'm a postgres dev, so I'm biased as hell...
PG search may be good enough for certain use cases, but it doesn't come close to the power of Lucene/Solr/ES. PG only recently added support for phrase search which Lucene has had for years. Lucene has extremely flexible analysis pipeline, BM25, "more like this" queries, simple custom ranking, great language support, "did you mean?", autocomplete, etc. ES in particular is built from the ground up as a clustered solution.
As I said PG may be good enough for some use cases, but to claim it is as good as ES is laughable. And PG certainly doesn't make sense if your product is literally a search product.
I have to build a search product in PGSQL, and I’ve done exactly that (and compared it with ES, Solr and Lucene).
For datasets below 50GB the performance is basically the same, you get about the same features, and it works well enough.
But you are right, as soon as you want to build more complicated search products, or as soon as you get larger amounts of data, you want a dedicated solution.