Search code examples
searchindexingsolrsolrcloud

How to designate searcher and indexer in SOLR cloud?


I currently have a 2 node solr (4.10.3) cloud cluster configured as 1 shard with 2 replicas (with a 3 node external zookeeper ensemble). How can I setup solr cloud to use one box just for searching, and one box just for indexing?

Is it as simple as pointing clients to their specific nodes?

For example if we have solr01(indexer) and solr02(searcher). We point all clients to solr02 when to perform a search, and all clients to solr01 when they need to add new data. The main downside that I can see to this is that it would reduce redundancy.

Is there some way to configure solr cloud to do handle this automatically?


Solution

  • Mmmm I think your idea fits better with a classic master / slaves architecture [1]. In SolrCloud you don't have such "dedicated" roles (indexer and searcher) because each node does that (potentially). So it doesn't make sense to have a cloud with distinct roles between instances.

    Using a classic replication instead, you will get exactly that scenario: an (offline) indexer that replicates index changes on several searcher that can be queried in round-robin mode for load balancing.


    [1] https://wiki.apache.org/solr/SolrReplication