Both Lucene and Solr were designed to scale to support large implementations with minimal custom coding.
This section covers:
If you need full scale distribution of indexes and queries, as well as replication, load balancing and failover, you may want to use SolrCloud. Full details on configuring and using SolrCloud is available in the section SolrCloud.
What Problem Does Distribution Solve?
If searches are taking too long or the index is approaching the physical limitations of its machine, you should consider distributing the index across two or more Solr servers.
To distribute an index, you divide the index into partitions called shards, each of which runs on a separate machine. Solr then partitions searches into sub-searches, which run on the individual shards, reporting results collectively.
The architectural details underlying index sharding are invisible to end users, who simply experience faster performance on queries against very large indexes.
What Problem Does Replication Solve?
Replicating an index is useful when:
You have a large search volume which one machine cannot handle, so you need to distribute searches across multiple read-only copies of the index.
There is a high volume/high rate of indexing which consumes machine resources and reduces search performance on the indexing machine, so you need to separate indexing and searching.
You want to make a backup of the index (see Making and Restoring Backups).