Apache Solr

Solr (pronounced "solar") is an open-source enterprise-search platform, written in Java. Its major features include full-text search, hit highlighting, faceted search, real-time indexing, dynamic clustering, database integration, NoSQL features and rich document (e.g., Word, PDF) handling. Providing distributed search and index replication, Solr is designed for scalability and fault tolerance. Solr is widely used for enterprise search and analytics use cases and has an active development community and regular releases.

Solr runs as a standalone full-text search server. It uses the Lucene Java search library at its core for full-text indexing and search, and has REST-like HTTP/XML and JSON APIs that make it usable from most popular programming languages. Solr's external configuration allows it to be tailored to many types of applications without Java coding, and it has a plugin architecture to support more advanced customization.

Apache Solr is developed in an open, collaborative manner by the Apache Solr project at the Apache Software Foundation.

History
In 2004, Solr was created by Yonik Seeley at CNET Networks as an in-house project to add search capability for the company website.

In January 2006, CNET Networks decided to openly publish the source code by donating it to the Apache Software Foundation. Like any new Apache project, it entered an incubation period that helped solve organizational, legal, and financial issues.

In January 2007, Solr graduated from incubation status into a standalone top-level project (TLP) and grew steadily with accumulated features, thereby attracting users, contributors, and committers. Although quite new as a public project, it powered several high-traffic websites.

In September 2008, Solr 1.3 was released including distributed search capabilities and performance enhancements among many others.

In January 2009, Yonik Seeley along with Grant Ingersoll and Erik Hatcher joined Lucidworks (formerly Lucid Imagination), the first company providing commercial support and training for Apache Solr search technologies. Since then, support offerings around Solr have been abundant.

In November 2009, saw the release of Solr 1.4. This version introduced enhancements in indexing, searching and faceting along with many other improvements such as rich document processing (PDF, Word, HTML), Search Results clustering based on Carrot2 and also improved database integration. The release also features many additional plug-ins.

In March 2010, the Lucene and Solr projects merged. Separate downloads continued, but the products were now jointly developed by a single set of committers.

In 2011, the Solr version number scheme was changed in order to match that of Lucene. After Solr 1.4, the next release of Solr was labeled 3.1, in order to keep Solr and Lucene on the same version number.

In October 2012, Solr version 4.0 was released, including the new SolrCloud feature. 2013 and 2014 saw a number of Solr releases in the 4.x line, steadily growing the feature set and improving reliability.

In February 2015, Solr 5.0 was released, the first release where Solr is packaged as a standalone application, ending official support for deploying Solr as a war. Solr 5.3 featured a built-in pluggable Authentication and Authorization framework.

In April 2016, Solr 6.0 was released. Added support for executing Parallel SQL queries across SolrCloud collections. Includes StreamExpression support and a new JDBC Driver for the SQL Interface.

In September 2017, Solr 7.0 was released. This release among other things, added support multiple replica types, auto-scaling, and a Math engine.

In March 2019, Solr 8.0 was released including many bugfixes and component updates. Solr nodes can now listen and serve HTTP/2 requests. Be aware that by default, internal requests are also sent by using HTTP/2. Furthermore, an admin UI login was added with support for BasicAuth and Kerberos. And plotting math expressions in Apache Zeppelin is now possible.

In November 2020, Bloomberg donated the Solr Operator to the Lucene/Solr project. The Solr Operator helps deploy and run Solr in Kubernetes.

In February 2021, Solr was established as a separate Apache project (TLP), independent from Lucene.

In May 2022, Solr 9.0 was released, as the first release independent from Lucene, requiring Java 11, and with highlights such as KNN "Neural" search, better modularization, more security plugins and more.

Operations
In order to search a document, Apache Solr performs the following operations in sequence:
 * 1) Indexing: converts the documents into a machine-readable format.
 * 2) Querying: understanding the terms of a query asked by the user. These terms can be images or keywords, for example.
 * 3) Mapping: Solr maps the user query to the documents stored in the database to find the appropriate result.
 * 4) Ranking: as soon as the engine searches the indexed documents, it ranks the outputs by their relevance.

Community
Solr has both individuals and companies who contribute new features and bug fixes.

Integrating Solr
Solr is bundled as the built-in search in many applications such as content management systems and enterprise content management systems. Hadoop distributions from Cloudera, Hortonworks and MapR all bundle Solr as the search engine for their products marketed for big data. DataStax DSE integrates Solr as a search engine with Cassandra. Solr is supported as an end point in various data processing frameworks and Enterprise integration frameworks.

Solr exposes industry standard HTTP REST-like APIs with both XML and JSON support, and will integrate with any system or programming language supporting these standards. For ease of use there are also client libraries available for Java, C#, PHP, Python, Ruby and most other popular programming languages.