@Mikhail Khludnev: thanks for your response

You mean something like this (source collection is "collection1", and I want to 
query "collection2"):

  SolrClient solrClient = new EmbeddedSolrServer(req.getCore());
  ModifiableSolrParams newParams = new ModifiableSolrParams();
  newParams.add("collection","collection2");
  SolrDocumentList docs = solrClient.getById(ids, newParams);

which is basically the same as:

   
http://localhost:8983/collection1_shard1_replica_n1/select?collection=collection2&&qt=/get&ids=myid

but in both cases, I get this error:

   org.apache.solr.common.SolrException: Can't find shard 'collection1_shard1' 
at 
org.apache.solr.handler.component.RealTimeGetComponent.sliceToShards(RealTimeGetComponent.java:897)
 at


apparently it forgets its own cloud information? What am I missing here?

BTW: is it necessary to  recreate a client like this on every request, giving 
the nature of a solrcloud where the shards can change?

On 27 Jul 2018, at 16:04, Mikhail Khludnev 
<m...@apache.org<mailto:m...@apache.org>> wrote:

Sure, it's up to you. But if for matter of fact, it EmbeddedSolrServer request 
has "collection" param, it pulls shards from zk and executed distributed 
request.
see 
http://people.apache.org/~mkhl/searchable-solr-guide-7-3/transforming-result-documents.html#cores-and-collections-in-solrcloud
 
https://github.com/apache/lucene-solr/blob/master/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java#L323

On Fri, Jul 27, 2018 at 11:48 AM Nicolas Franck 
<nicolas.fra...@ugent.be<mailto:nicolas.fra...@ugent.be>> wrote:
>From what I've seen now, it seems that you can only directly connect to a 
>specific core on your own node,
right? Should have expected that: it is local ;-)

Then I'll stick to the old solution that worked after all.

Thanks for all the advice

On 26 Jul 2018, at 14:28, Mikhail Khludnev 
<m...@apache.org<mailto:m...@apache.org>> wrote:

[subquery] calls remote cloud collections if collection parameter (which is 
somewhat not well known, documented) is supplied
https://github.com/apache/lucene-solr/blob/master/solr/core/src/java/org/apache/solr/response/transform/SubQueryAugmenterFactory.java#L334


On Thu, Jul 26, 2018 at 3:05 PM Nicolas Franck 
<nicolas.fra...@ugent.be<mailto:nicolas.fra...@ugent.be>> wrote:
I'm writing a solr plugin in java that has to query another solr collection to 
gather
information. What is the best way to do this?

For now I'm just using a SolrClient ( CloudSolrClient ), but has several 
disadvantages:

* you have to extract from core metadata where your server resides, and setup 
your SolrClient accordingly.
* you are just knocking at the same door
* search has to go over http for the same core.

Is there a better way? Are there any examples?

Thanks in advance

Nicolas Franck
---------------------------------------------------------------------
To unsubscribe, e-mail: 
dev-unsubscr...@lucene.apache.org<mailto:dev-unsubscr...@lucene.apache.org>
For additional commands, e-mail: 
dev-h...@lucene.apache.org<mailto:dev-h...@lucene.apache.org>



--
Sincerely yours
Mikhail Khludnev



--
Sincerely yours
Mikhail Khludnev

Reply via email to