ElasticSearch

      ElasticSearch
      Developer(s) Shay Banon
      Stable release 0.90.1 / May 30, 2013 (2013-05-30)
      Development status Active
      Written in Java
      Operating system Cross-platform
      Type Search and index
      License Apache License 2.0
      Website www.elasticsearch.org

      ElasticSearch is a distributed, RESTful, free/open source search server based on Apache Lucene. It is developed by Shay Banon[1] and is released under the terms of the Apache License. ElasticSearch is developed in Java.

      History

      Shay Banon created Compass in 2004.[2] While thinking about the third version of Compass he realized that it would be necessary to rewrite big parts of Compass to "create a scalable search solution".[2] So he created "a solution built from the ground up to be distributed" and used a common interface, JSON over HTTP, suitable for programming languages other than Java as well.[2] Shay Banon released the first version of ElasticSearch in February 2010.[3]

      In a French interview some more ideas are explained.[4]

      ↑Jump back a section

      Features

      ElasticSearch can be used to search all kinds of documents. It provides a scalable search solution, has near real-time search and support for multitenancy.[5] "ElasticSearch is distributed, which means that indices can be divided into shards and each shard can have zero or more replicas. Each node hosts one or more shards, and acts as a coordinator to delegate operations to the correct shard(s). Rebalancing and routing are done automatically [...]".[5]

      It uses Apache Lucene and tries to make all features of it available through the JSON and Java API. It supports facetting and percolating, which can be useful for notifying if new documents match for registered queries.

      Another feature is called 'Gateway' and handles the long term persistence of the index[6]- i.e. an index can be recovered from the Gateway in a case of a server crash. ElasticSearch supports real-time GET requests, which makes it suitable as a NoSQL solution,[7] but it lacks distributed transactions.[8]

      ↑Jump back a section

      Comparison to other software

      Apache Solr is another open source search server built on top of Apache Lucene. Sematext published a series of posts starting with Solr vs. ElasticSearch Overview[9] comparing ElasticSearch v 0.2 vs. Solr (Solr 4.0, aka SolrCloud, more specifically) in a comprehensive and neutral way. Note that the current release of ElasticSearch, 0.9, is now built on Lucene 4.0. In an article from Ryan Sonnek it will be pointed out how Apache Solr and ElasticSearch compare regarding near real-time indexing and searching.[10] An article in the German iX magazine from Peter Karich lists advantages and disadvantages of ElasticSearch [11] - an English slide is also available,[12] which can be summarized as follows:

      Advantages:

      • ElasticSearch is distributed. No separate project required. Replicas are near real-time too, which is called "Push replication".[13][14]
      • ElasticSearch fully supports the near real-time search of Apache Lucene.
      • Handling multitenancy is not a special configuration, whereas a more advanced setup is necessary with Solr.
      • ElasticSearch introduces the concept of the Gateway,[6] which makes full backups easier.

      Disadvantages:

      • Only one main developer.[1] This has to be mitigated since there is now the company ElasticSearch which has a large development team and provides commercial support.

      Different Usage

      • Use parent/child feature instead of Solr's results grouping or have a look into this issue .
      • No XML support, only JSON
      • Common container deployment (as a WAR file) is in development plugin
      • No convenient wrapper for Java beans as the @Field annotation in SolrJ
      ↑Jump back a section

      Users

      There are already smaller and some bigger companies using ElasticSearch,[15] including StumbleUpon,[16]Mozilla,[17][18]Quora,[19]Foursquare [20], Etsy,[21]SoundCloud,[22] and GitHub.[23]

      ↑Jump back a section

      Videos

      ↑Jump back a section

      Read in another language

      This page is available in 1 language

      Last modified on 18 June 2013, at 20:02