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

David Smiley commented on SOLR-14630:
-------------------------------------

FYI the solution will affect observability/logging signals somewhat because 
queries into Solr from SolrJ will no longer be the collection name but be the 
replica name (which started with the collection name, at least).

We also toyed around with the idea of routing smarter Solr side, like in 
HttpSolrCall if certain parameters were present.  But that is more work and 
there is already precedent for direct routing via update requests that 
CloudSolrClient makes, so we chose that.  Nonetheless these aren't mutually 
exclusive; not everyone uses SolrJ CloudSolrClient.

> 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: 0.5h
>  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