Sunday, May 29, 2011

Elastic Search - an interesting search solution

ElasticSearch is a open source RESTful Search Server, built on top of Lucene Library.
It boasts of following features



  • JSON over HTTP

  • Free Search Schema

  • Near Realtime search

  • Easy Distributed Index and Search

  • Multi-Tenancy

  • Ready for Cloud - very easy for setting it up in Amazon Cloud

  • JAVA API Support

  • Support for Facets

  • It uses Write Behind Queue to store Index updates. It makes use of TransactionLogs to keep track of Index updates.

  • Reads can be done on Shard Replicas.

However, it does not support XML.


On the surface, it appears that this product is ready for Web 2.0 world and is ideal for cloud deployment.


Its feature set is not as rich as Apache Solr but it does have decent support for Facets which is hot nowadays. It has very good Data Visualization support which makes it ideal for Monitoring Tools.


How does it compare with Solr?



  • Solr is richer in feature set, w.r.t analyzers and facets.

  • Solr's distributed setup is not ideal and looks awkward. ElasticSearch's design seems to be robust.

  • Solr has been there for much longer and has matured community behind it.

  • ElasticSearch is so far only one committer's work.

  • ElasticSearch scores over Solr in terms of Cloud Readyness.

  • XML support is misisng in ElasticSearch which is not a big deal as JSON is standard for Web 2.0 world.

You can get more info from these slides.

When do you use ES?


  • Big Index or Realtime Search is needed

  • or, there are many indexes

  • or, have a multi-tenancy requirement ( Solr core is okay)

When you should not use ES?



  • If team is comfortable with Solr then stick to it

  • justifying ES in a large corp would be difficult

More info can be obtained from here.






No comments: