Solr vs ES

Both are Open Source and both are build on top of Lucene

http://solr-vs-elasticsearch.com/

 

SOLR is a wrapper over Lucene index.

It is simple to understand: SOLR is car and Lucene is its engine. You just need to know how to drive car (SOLR) and also need to know few things of engine (Lucene) in case if there will be any issue in your car engine.

Lucene gives you the indexing and search functionality with a Java API. Therefore, you need non-trivial Java programming in order to build full-text search, say for an enterprise website.

Solr is a standalone search server. Therefore it is possible, by editing an XML file, to build a running search server in minutes without any programming. Please see the Solr Tutorial.

Solr is Lucene best practices – many parameters are already set to default good values.
It gives you an HTTP API exposing a lot (not all) of Lucene’s functionality, and an easy monitoring/debugging interface.

Solr provides easier scaling/distribution than Lucene.
It allows for faceting and easy geospatial search.
See more features at: http://lucene.apache.org/solr/fe…

BTW, Solr’s contender is Elasticsearch, which does things differently.
Here is a comparison by Otis Gospodnetic:
http://blog.sematext.com/2015/01…

Apache Solr is a web application built around Lucene with all kinds of goodies.

It adds functionality like

  • XML/HTTP and JSON APIs
  • Hit highlighting
  • Faceted Search and Filtering
  • Geospatial Search
  • Fast Incremental Updates and Index Replication
  • Caching
  • Replication
  • Web administration interface etc

Unlike Lucene, Solr is a web application (WAR) which can be deployed in any servlet container, e.g. Jetty, Tomcat, Resin, etc.

Solr can be installed and used by non-programmers. Lucene cannot.

  • Realtime Search: Solr vs Elasticsearch provides an insightful analysis/comparison and explains why he switched from Solr to ElasticSeach, despite being a happy Solr user already – he summarizes this as follows:

    Solr may be the weapon of choice when building standard search applications, but Elasticsearch takes it to the next level with an architecture for creating modern realtime search applications. Percolation is an exciting and innovative feature that singlehandedly blows Solr right out of the water. Elasticsearch is scalable, speedy and a dream to integrate with. Adios Solr, it was nice knowing you. [emphasis mine]

  • The Wikipedia article on ElasticSearch quotes a comparison from the reputed German iX magazine, listing advantages and disadvantages, which pretty much summarize what has been said above already:

    Advantages:

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

    Disadvantages:

    • Only one main developer [not applicable anymore according to the current elasticsearch GitHub organization, besides having a pretty active committer base in the first place]
    • No autowarming feature [not applicable anymore according to the new Index Warmup API]

Initial Answer

They are completely different technologies addressing completely different use cases, thus cannot be compared at all in any meaningful way:

  • Apache SolrApache Solr offers Lucene’s capabilities in an easy to use, fast search server with additional features like faceting, scalability and much more
  • Amazon ElastiCacheAmazon ElastiCache is a web service that makes it easy to deploy, operate, and scale an in-memory cache in the cloud.
    • Please note that Amazon ElastiCache is protocol-compliant with Memcached, a widely adopted memory object caching system, so code, applications, and popular tools that you use today with existing Memcached environments will work seamlessly with the service (see Memcached for details).

[emphasis mine]

Maybe this has been confused with the following two related technologies one way or another:

  • ElasticSearchIt is an Open Source (Apache 2), Distributed, RESTful, Search Engine built on top of Apache Lucene.
  • Amazon CloudSearchAmazon CloudSearch is a fully-managed search service in the cloud that allows customers to easily integrate fast and highly scalable search functionality into their applications.

The Solr and ElasticSearch offerings sound strikingly similar at first sight, and both use the same backend search engine, namely Apache Lucene.

While Solr is older, quite versatile and mature and widely used accordingly, ElasticSearch has been developed specifically to address Solr shortcomings with scalability requirements in modern cloud environments, which are hard(er) to address with Solr.

As such it would probably be most useful to compare ElasticSearch with the recently introduced Amazon CloudSearch

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s