ElasticSearch
|
|
This article has an unclear citation style. (May 2012) |
| Developer(s) | Shay Banon |
|---|---|
| Stable release | 0.90.1 / May 30, 2013 |
| 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]
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]
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
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]
References
- ^ a b ElasticSearch Commiters
- ^ a b c The Future of Compass
- ^ Initial version of ElasticSearch
- ^ French interview
- ^ a b Official Website
- ^ a b "elasticsearch Guide: Gateway". elasticsearch. Retrieved April 19, 2013.
- ^ ElasticSearch as database
- ^ No transaction support
- ^ Solr vs. ElasticSearch Overview
- ^ Comparison of Apache Solr and ElasticSearch regarding near real-time indexing
- ^ iX Magazine Article "Immer Flexibel"
- ^ Feature comparison of Apache Solr and ElasticSearch
- ^ a b Video, Berlin Buzz 2011
- ^ a b Berlin Buzz 2011
- ^ ElasticSearch users
- ^ StumbleUpon uses ElasticSearch
- ^ Why Mozilla uses ElasticSearch
- ^ ElasticSearch helps Mozilla Metrics team
- ^ Full Text Search on Quora
- ^ foursquare now uses Elastic Search
- ^ Oculus: The metric correlation component of Etsy's Kale system
- ^ Architecture behind our new Search and Explore experience
- ^ A Whole New Code Search
- ^ Video, InfoQ presentation
- ^ Berlin Buzzwords 2010
- ^ Mozilla Metrics at Berlin Buzzwords 2010
- ^ Berlin Buzzwords 2012
- ^ Zmievski, Andrei (25 Feb, 2011). "99 Problems, But The Search Ain't One (PHP UK 2011)". elasticsearch. Retrieved October 6, 2012.
- ^ YAPC::EU 2010
Read in another language
This page is available in 1 language
