Well. I certainly haven't invoked RTG by this way. You might need to debug and understand what's going on. I briefly looked through code, maybe supplying shards param is an option (see RealTimeGetComponent.createSubRequests(ResponseBuilder)), but it implies "gathering cloud info".
On Wed, Aug 1, 2018 at 9:59 AM Nicolas Franck <[email protected]> wrote: > @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 <[email protected]> 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 <[email protected]> > 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 <[email protected]> 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 <[email protected]> >> 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: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >> >> -- >> Sincerely yours >> Mikhail Khludnev >> >> >> > > -- > Sincerely yours > Mikhail Khludnev > > > -- Sincerely yours Mikhail Khludnev
