d-_-b
d-_-b

Reputation: 23181

Which SOLR server should a distributed request be sent to when specifying shards in the URL?

I am setting up a distributed search with shards in SOLR.

Which server should I send this request to? or does it not matter?

host1:8983/solr/core?q=:&shards=host1:8983/solr/core,host2:8983/solr/core

vs

host2:8983/solr/core?q=:&shards=host1:8983/solr/core,host2:8983/solr/core

Similarly, would it be a better idea to have a separate empty solr server to direct these searches to instead of using one of the shards?

Upvotes: 1

Views: 39

Answers (1)

MatsLindh
MatsLindh

Reputation: 52832

Unless you're seeing performance issues I wouldn't be too concerned about the performance difference between those two. The queries will run on both servers anyway, it'll just be a different server that's responsible for merging the end result to the client. If you want to spread this load across both servers, that's fine - in that case I'd go with alternating between both in a round robin manner (for example by placing an HTTP load balancer in front or letting your Solr library load balance between the available servers).

If you start getting replicas into the mix it becomes harder, where a load balancer will be useful. In that case it might be a good idea to look into Solr in cloud mode instead, where Solr will handle all this for you transparently (both load balancing and replica balancing, as long as your library is Zookeeper aware).

Upvotes: 1

Related Questions