What is Apache Solr?
Apache Solr is the popular, blazing-fast, open source platform for searches of data stored in HDFS in Hadoop. Solr powers the search and navigation features of many of the world’s largest Internet sites, enabling powerful full-text search and near real-time indexing. Solr enables you to easily create search engines which searches websites, databases and files.Whether users search for tabular, text, geo-location or sensor data in Hadoop, they find it quickly with Apache Solr.
What Solr Does ?
Hadoop operators put documents in Apache Solr by “indexing” via XML, JSON, CSV or binary over HTTP.
Then users can query those petabytes of data via HTTP GET. They can receive XML, JSON, CSV or binary results. Apache Solr is optimized for high volume web traffic.
Top features of Apache Solr
Solr is characterized by various features while its major ones include powerful full-text search, hit highlighting, faceted search, dynamic clustering, database integration, rich document (like Word and PDF) handling, and geospatial search. From its various features we describe the following ones:
- Advanced Full-Text Search Capabilities: since it is powered by Lucene, Solr enables powerful matching capabilities including phrases, wildcards, joins, grouping and much more across any data type
- Optimized for High Volume Traffic: Solr is proven at extremely large scales the world over
- Comprehensive Administration Interfaces: Solr ships with a built-in, responsive administrative user interface to make it easy to control its instances
- Highly Scalable and Fault Tolerant: Built on the battle-tested Apache Zookeeper, Solr makes it easy to scale up and down. It bakes in replication, distribution, rebalancing and fault tolerance out of the box.
- Flexible and Adaptable with easy configuration: Solr is designed to adapt to the needs all while simplifying configuration
How Solr Works ?
Solr is written in Java and runs as a standalone full-text search server within a servlet container such as Jetty. Solr uses the Apache 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 easy to use with many programming languages.
Solr’s powerful external configuration allows it to be tailored to almost any type of application without Java coding, and it has an extensive plugin architecture when more advanced customization is required.
Apache Solr includes a deployment methodology to set up a cluster of Solr servers that combines fault tolerance and high availability. This is referred to as SolrCloud. SolrCloud provides distributed indexing and search capabilities, and provides automated failover for queries in the event of any failure to a SolrCloud server.
SolrCloud utilizes Apache ZooKeeper for cluster coordination and configuration.