Yes that is correct. Joel Bernstein http://joelsolr.blogspot.com/
On Fri, Jun 16, 2017 at 9:55 AM, Aman Deep Singh <amandeep.coo...@gmail.com> wrote: > Thanks Joel, > It is working now > One quick question,as you say that we can use solr client cache multiple > time so can I create a single instance of solr client cache and use it > again and again ,since we are using one single bean for client object. > > > On 16-Jun-2017 6:28 PM, "Joel Bernstein" <joels...@gmail.com> wrote: > > The issue is that in 6.6 CloudSolrStream is expecting a StreamContext to be > set. So you'll need to update your code to do this. This was part of > changes made to make streaming work in non-SolrCloud environments. > > You also need to create a SolrClientCache which caches the SolrClients. > > Example: > > SolrClientCache cache = new SolrClientCache(); > > StreamContext streamContext = new StreamContext(); > > streamContext.setSolrClientCache(cache); > > CloudSolrStream stream = new CloudSolrStream(...); > stream.setStreamContext(streamContext); > stream.open(); > .... > > The SolrClientCache can be shared by multiple requests and should be closed > when the application exits. > > > > > > > > > > > > > > > > > > > > > > > Joel Bernstein > http://joelsolr.blogspot.com/ > > On Fri, Jun 16, 2017 at 2:17 AM, Aman Deep Singh < > amandeep.coo...@gmail.com> > wrote: > > > Hi, > > I think their is a possible bug in Solrj version 6.6.0 ,as streaming is > not > > working > > as i have a piece of code > > > > public Set<String> getAllIds(String requestId, String field) { > > LOG.info("Now Trying to fetch all the ids from SOLR for request Id > > {}", requestId); > > Map props = new HashMap(); > > props.put("q", field + ":*"); > > props.put("qt", "/export"); > > props.put("sort", field + " asc"); > > props.put("fl", field); > > Set<String> idSet = new HashSet<>(); > > try (CloudSolrStream cloudSolrStream = new > > CloudSolrStream(cloudSolrClient.getZkHost(), > > cloudSolrClient.getDefaultCollection(), new > > MapSolrParams(props))) { > > cloudSolrStream.open(); > > while (true) { > > Tuple tuple = cloudSolrStream.read(); > > if (tuple.EOF) { > > break; > > } > > idSet.add(tuple.getString(field)); > > } > > return idSet; > > } catch (IOException ex) { > > LOG.error("Error while fetching the ids from SOLR for request > > Id {} ", requestId, ex); > > } > > return Collections.emptySet(); > > } > > > > > > This is working in the Solrj 6.5.1 but now it start throwing Error > > after upgrading to solrj-6.6.0 > > > > java.io.IOException: java.lang.NullPointerException > > at org.apache.solr.client.solrj.io.stream.CloudSolrStream. > > constructStreams(CloudSolrStream.java:408) > > ~[solr-solrj-6.6.0.jar:6.6.0 5c7a7b65d2aa7ce5ec96458315c661a18b320241 > > - ishan - 2017-05-30 07:32:54] > > at org.apache.solr.client.solrj.io.stream.CloudSolrStream. > > open(CloudSolrStream.java:299) > > ~[solr-solrj-6.6.0.jar:6.6.0 5c7a7b65d2aa7ce5ec96458315c661a18b320241 > > - ishan - 2017-05-30 07:32:54] > > > > > > Thanks, > > > > Aman Deep Singh > > >