[ 
https://issues.apache.org/jira/browse/SOLR-14630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17727705#comment-17727705
 ] 

ASF subversion and git services commented on SOLR-14630:
--------------------------------------------------------

Commit f3b0386f724ff69f4dcee2c6273aaf4d078d9ea3 in solr's branch 
refs/heads/main from Pierre Salagnac
[ https://gitbox.apache.org/repos/asf?p=solr.git;h=f3b0386f724 ]

SOLR-14630: SolrJ queries: form the URL to the replica (#1646)

CloudSolrClient: When querying with the `_route_` or `shards.preference` 
parameter and if there are multiple replicas for a collection on the receiving 
node, there was sometimes an extra HTTP hop or the non-intended replica may 
receive the request.  SolrJ will now form the URL directly to the intended 
replica of the collection (and not the collection itself).

Co-authored-by: Pierre Salagnac <psalag...@salesforce.com>

> CloudSolrClient doesn't pick correct core when server contains more shards
> --------------------------------------------------------------------------
>
>                 Key: SOLR-14630
>                 URL: https://issues.apache.org/jira/browse/SOLR-14630
>             Project: Solr
>          Issue Type: Bug
>          Components: SolrCloud, SolrJ
>    Affects Versions: 8.5.1, 8.5.2
>            Reporter: Ivan Djurasevic
>            Assignee: David Smiley
>            Priority: Major
>         Attachments: 
> 0001-SOLR-14630-Test-case-demonstrating-_route_-is-broken.patch
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> Precondition: create collection with 4 shards on one server.
> During search and update, solr cloud client picks wrong core even _route_ 
> exists in query param. In BaseSolrClient class, method sendRequest, 
>  
> {code:java}
> sortedReplicas.forEach( replica -> {
>   if (seenNodes.add(replica.getNodeName())) {
>     theUrlList.add(ZkCoreNodeProps.getCoreUrl(replica.getBaseUrl(), 
> joinedInputCollections));
>   }
> });
> {code}
>  
> Previous part of code adds base url(localhost:8983/solr/collection_name) to 
> theUrlList, it doesn't create core address(localhost:8983/solr/core_name). If 
> we change previous code to:
> {quote}
> {code:java}
> sortedReplicas.forEach(replica -> {
>     if (seenNodes.add(replica.getNodeName())) {
>         theUrlList.add(replica.getCoreUrl());
>     }
> });{code}
> {quote}
> Solr cloud client picks core which is defined with  _route_ parameter.
>  
>   



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to