Distributed search
When an index becomes too large to fit in a single machine, we can shard it and distribute it across multiple machines. Sharding requires a strategy that decides the shard to which a document is to be indexed based on certain values in certain fields. This strategy can be based on date, type of documents and so on. Though indexing has to happen separately for multiple shards, the search has to happen through a single interface. We should be able to specify the shards and the query should be run on all shards and return results for all shards. Solarium makes searching across multiple shards easy. Solarium supports distributed search through the DistributedSearch
component. This allows us to query multiple shards using a single interface and get results from all shards.
Another way of scaling your search infrastructure is to create a master-slave Solr architecture. Master can be used to add documents in your index and slaves can be used to provide search. This architecture...