4 ms·
PostgreSQL is Engine Yard's New Default
- einhverfr 14y agoAwesome. Given that their services look Ruby-centric, maybe they could take over PL/Ruby and point out that this would allow people to write their stored procs in Ruby too.
- jeltz 14y agoYeah, PL/Ruby looks quite dead to me. Would be nice if someone got development of it up to speed again.
- sheff 14y agoAn update to PL/Ruby would be great. It doesn't appear to have been updated for a couple of years or use Ruby 1.9 : https://github.com/knu/postgresql-plruby https://github.com/knu/postgresql-plruby . There is also a newer fork : https://github.com/globegit/postgresql-plruby https://github.com/globegit/postgresql-plruby , which does appear to be worked on.
- trustfundbaby 14y agoDoes anybody know how Postgres' fulltext search capabilities/performance compare to using something like ElasticSearch?
- heretohelp 14y agoPostgresql is nowhere, NOWHERE near as powerful or as fast, but it'll work for the cases where you're doing simple search-interface bolt-ons to an existing product already using PGSQL. Postgresql fulltext and ElasticSearch are ultimately solving two very different sorts of problems. The only case I can think of where you would prefer to use PGSQL is if you some weird blending of normal relational data with the documents, but I think realistically you can sidestep that. We've been able to do pretty complicated queries against our ElasticSearch instances.
- einhverfr 14y agoAs you say they solve two very different sorts of problems. If you want to do full text searching of documents, probably PostgreSQL is not the right answer. If you want to pull all customers in the UK with notes searched full-text-wise for "did not pay" then PostgreSQL is much better just because it all integrates into the same filter.
- heretohelp 14y agoFully agreed.
- mark_story 14y agoFrom what I know its better than MySQL's full text and all its warts, but still not comparable to a lucene based search solution.
- elchief 14y agoThe main problem is that it's a major PITA to sync a db and an external search service. So it's nice to have FTS built-in
- taligent 14y agoDepends on the database. I know CouchDB and MongoDB both make it pretty easy to add Solr/ElasticSearch into the equation.
- buremba 14y agoPostgresql cannot be fast as Lucene because of its not a "search engine". Postgresql full-text is fast enough for most cases but it doesn't have support for facet queries which is important for a search engine.
- deleted 14y ago[deleted]
- saurik 14y agoActually, it does, which is why tools like PostGIS are built for it. In the most recent versions of PostgreSQL (I believe 9.1) they even added k-nearest-neighbor multi-dimensional index support to GiST.
- fdr 14y agoI can't give you a comparison, but for what it's worth, it is used on the Postgres documentation and mailing list archives. I mention this because you can play with it and get an intuitive sense of its performance and subjective usefulness. http://archives.postgresql.org/ http://archives.postgresql.org/ http://www.postgresql.org/search/?u=%2Fdocs%2F9.1%2F&q=create+table http://www.postgresql.org/search/?u=%2Fdocs%2F9.1%2F&q=c... It's also handy because you can combine it with relational data. For example, if you search from a manual page of a particular version of Postgres, it'll only return results from that version. The main performance limitation is probably update/insert rate, and it doesn't has as many features as a dedicated IR-type system, but it's frequently good-enough and already present.
- thinkbohemian 14y agoPostgreSQL is amazing, that is all.
- elchief 14y agoAfter like an entire year (duh) I figured out how to have InnoDB transactions with MyISAM full-text search... InnoDB master. MyISAM slaves.
- jeltz 14y agoOne important feature for PostgreSQL which they should have mentioned is transactional DDL. It makes applying migrations much less risky since you know if a statement in the migration fails all of it will be rolled back. After having used PostgreSQL in production for some years I do not know how I could go back to a database without transactional DDL.