Solr and Elasticsearch are two of the most popular Apache Lucene-based search engines out there. While both share a lot of features in common, there are some notable differences when it comes to functionality, scalability, and deployment.

Solr Search / Apache Solr

Solr Search or Apache Solr is an open source search engine that was built using the Lucene Java library. It offers all of Apache Lucene’s search features while ditching the complex user interface. The community behind Solr is active, and it is one of the most reliable search engines out there. It is capable of indexing and searching multiple websites at the same time.

Some of the most popular Solr features include:

  • Real-time indexing
  • Highlighting
  • NoSQL features
  • Rich-text Format Document Handling

Elasticsearch

Elasticsearch is also built on the Apache Lucene library and utilizes a RESTful search engine. The search engine offers full-text search capabilities using an HTTP web interface. The official libraries for the Elasticsearch client are available in Java, Groovy, PHP, Ruby, Perl, Python, .NET, and Javascript.

Some of the popular Elasticsearch features include:

  • Distributed search
  • Analytical Search
  • Multi-tenancy
  • Grouping and Aggregation

Solr vs. Elasticsearch

Development and support

Elasticsearch is fully commercial while Solr is part of the Apache Software Foundation. Apache is community-based and open-source. Anyone can be part of the Solr community through commits. There is a lot of collaboration in the Solr community.

Even though Elasticcsearch is commercial, the code is open source and developers can use and modify it. Developers can also submit pull requests to have changes implemented to the search engine. It is up to the Elastic corporation to decide if any requests by the Elasticsearch community’s developers are accepted or not.

Configuration

Elasticsearch is extremely streamlined, and the distribution package size is a fraction of what Solr offers. The installation process is easier as well and can be configured within a matter of minutes. It comes with an existing JSON configuration.

Even though Solr has come a long way since its inception, it is much easier to configure than before. The use of Rest APIs has made the configuration process simpler, but it still has issues like clustering algorithms, documentation and custom shared collections.

Indexing

Elasticsearch offers far less control to developers when it comes to indexing. Developers have little control over deciding if particular shards will be set as primaries or will be used as replicas. Unlike Elasticsearch, Solr offers much more control to its developers including full rebalancing permissions.

Machine Learning

Elasticsearch makes use of X-pack for machine learning. X-Pack is a commercial plugin that is used along with Kibana to offer support for machine learning algorithms. It is capable of detecting anomalies and outliers. However, it is a paid add-on. Solr provides machine learning support for free. All developers who are part of the community can use machine learning based ranking models and feature extractions.

Performance

There is no clear winner when it comes to performance metrics. Elasticsearch is known to work well when data rapidly changes. It uses caching efficiently to ensure it is not affected by changes to data. However, Solr is much more efficient when it comes to handling static data.

Conclusion

Solr and Elasticsearch have their fair share of advantages over each other. Solr is ideal for open-source enthusiasts while Elasticsearch is much more convenient for those who work with fluid data.


About the Author

Abhishek is a Drupal Architect having 12 years of experience in designing, development and implementation of various internet/web and client/server application. He is an expert in open source technologies like PHP, LINUX, MYSQL, APACHE and frontend technologies like HTML, jQuery, AngularJs, XML, CSS, JavaScript, Databases including PhpMyAdmin.
Drupal Profile : http://drupal.org/user/730718
top