Apache Solr is a subproject of Apache Lucene, which is the indexing technology behind the most recently created search and index technology. Solr is a search engine at heart, but it is much more than that. It is a NoSQL database with transactional support. It is a document database that offers SQL support and executes it in a distributed manner.
Solr is free to download from lucene.apache.org/solr.
However, to fully grasp how to use it for your benefit, here are Solr‘s core features and why you may want to use Solr:
Powerful Full-Text Search Capabilities
Solr provides advanced near real-time searching capabilities such as fielded search, Boolean queries, phrase queries, fuzzy queries, spell check, wildcards, joins, grouping, auto-complete and many more across different types of data.
High Scalability and Flexibility
With tools such as Apache ZooKeeper, it’s easy to scale Solr up or down, as it relies heavily on automated index replication, distribution, load-balancing, and automated failover and recovery.
Therefore, depending on the needs and size of your operation, Solr can be deployed to any kind of system such as standalone, distributed, cloud, all while simplifying configuration.
Extensible Plugin Architecture
Solr publishes extension points that make it easy to plugin both index and query time plugins.
Built-in Security
Solr comes with features that address several aspects of security:
- SSL for encryption of HTTP traffic between Solr clients and Solr, as well as between nodes
- Basic and Kerberos-based authentication
- Authorization APIs for defining users, roles, and permissions
Powerful Analytical Capabilities Solr has two ways of analyzing data:
- Facets These are good for real-time analytics. For example, in product search, you’d break down results by brand. In log analysis, you’d look at the volume of errors per hour.
- Streaming aggregations They allow you to do more complex processing, though it’s typically slower than facets. Examples include joining results with a different data set (potentially outside Solr) and machine learning tasks such as clustering or regression.
Why Solr? Solr has support for multi-tenant architecture that enables you to scale, distribute and manage indexes for large scale applications.
In a nutshell, Solr is a stable, reliable and fault-tolerant search platform with a rich set of core functions that enable you to improve both user experience and the underlying data modeling. For instance, among functionalities that help deliver good user experience, we can name spell checking, geospatial search, faceting, or auto-suggest, while backend developers may benefit from features like joins, clustering, being able to import rich document formats, and many more.