Both are Open Source and both are build on top of Lucene
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 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:
BTW, Solr’s contender is
Here is a comparison by :
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
- 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:
- 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.
They are completely different technologies addressing completely different use cases, thus cannot be compared at all in any meaningful way:
- Apache Solr – Apache Solr offers Lucene’s capabilities in an easy to use, fast search server with additional features like faceting, scalability and much more
- Amazon ElastiCache – Amazon 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).
Maybe this has been confused with the following two related technologies one way or another:
- ElasticSearch – It is an Open Source (Apache 2), Distributed, RESTful, Search Engine built on top of Apache Lucene.
- Amazon CloudSearch – Amazon 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