[ 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