searchsolrluceneelasticsearch

Solr vs. ElasticSearch


What are the core architectural differences between these technologies?

Also, what use cases are generally more appropriate for each?


Solution

  • Update

    Now that the question scope has been corrected, I might add something in this regard as well:

    There are many comparisons between Apache Solr and Elasticsearch available, so I'll reference those I found most useful myself, i.e. covering the most important aspects:

    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]

    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:

    [emphasis mine]

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

    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 (see the introductory post Start Searching in One Hour for Less Than $100 / Month), because both claim to cover the same use cases in principle.