分类: Java
2012-12-13 05:51:42
Sphinx is a modified mysql server optimized for searching. It is reasonably fast, but scaling it is DIY.
Solr is a well supported Lucene based search engine. It has one of the most advanced feature sets amongst search engines out there and is very stable with great community.
ElasticSearch is a relative new addition in search field, Lucene based search engine. Its "Elastic" in a sense that scaling it to multiple machines is built-in and very easy. It supports sharding and/or replication. This is an engine of choice for me, as it is trivial to setup, it has a great JSON API for doing all the operations and it is very customizable.
CloudSearch is a proprietary creation of Amazon. It's a paid setup and amount of money you pay depends on amount of traffic and requests that it serves. Ultimately, it's not a good fit for me, since it lacks geolocation search ( by lat/long ). It's hard to determine if it's Lucene based, but it's certainly not open-source, so if you have an issue, or you want to modify something in the search behaviour, which is not supported by Amazon currently - you are out of luck ( pretty much like every other closed source solution ). Also a word of warning, we've noticed with a number of Amazon services that their stated performance is actually lower in real life. So at times you have to provision for a higher usage than what you've anticipated that you have to pay for.