Erick, thanks for the reply. Your last line puzzled me a bit. You wrote *"The theory is that all the top-level requests shouldn’t be handled by the same Solr instance if a client is directly using the http address of a single node in the cluster for all requests."*
We are using 2 machines (2 different IPs), 2 shards with 2 replicas each. We have an application which sends all solr requests to the same http address of our machine A. I assumed that Zookeeper would distribute the requests among the nodes. Is this not the right thing to do? Should I have the application alternate the solr machine to send requests to? Thanks Reinaldo On Wed, May 27, 2020 at 12:37 PM Erick Erickson <erickerick...@gmail.com> wrote: > The base algorithm for searches picks out one replica from each > shard in a round-robin fashion, without regard to whether it’s on > the same machine or not. > > You can alter this behavior, see: > https://lucene.apache.org/solr/guide/8_1/distributed-requests.html > > When you say “the exact same search”, it isn’t quite in the sense that > it’s going to a different shard as evidenced by &DISTRIB=false being > on the URL (I’d guess you already know that, but…). The top-level > request _may_ be forwarded as is, there’s an internal load balancer > that does this. The theory is that all the top-level requests shouldn’t > be handled by the same Solr instance if a client is directly using > the http address of a single node in the cluster for all requests. > > Best, > Erick > > > > > On May 27, 2020, at 11:12 AM, Odysci <ody...@gmail.com> wrote: > > > > Hi, > > > > I have a question regarding solrcloud searches on both replicas of an > index. > > I have a solrcloud setup with 2 physical machines (let's call them A and > > B), and my index is divided into 2 shards, and 2 replicas, such that each > > machine has a full copy of the index. My Zookeeper setup uses 3 > instances. > > The nodes and replicas are as follows: > > Machine A: > > core_node3 / shard1_replica_n1 > > core_node7 / shard2_replica_n4 > > Machine B: > > core_node5 / shard1_replica_n2 > > core_node8 / shard2_replica_n6 > > > > I'm using solrJ and I create the solr client using > Http2SolrClient.Builder > > and the IP of machineA. > > > > Here is my question: > > when I do a search (using solrJ) and I look at the search logs on both > > machines, I see that the same search is being executed on both machines. > > But if the full index is present on both machines, wouldn't it be enough > > just to search on one of machines? > > In fact, if I turn off machine B, the search returns the correct results > > anyway. > > > > Thanks a lot. > > > > Reinaldo > >