Thank you so much, Shawn.  Didn't realize that i could call process
directly. I think it will be helpful to add this code to solr
documentation. I'll create a jira to update the documentation.

Thanks,
Susheel

On Mon, Aug 1, 2016 at 7:14 PM, Shawn Heisey <apa...@elyograg.org> wrote:

> On 8/1/2016 1:59 PM, Susheel Kumar wrote:
> > BUT how do we set the credentials when calling
> >
> > //HOW to set credentials before calling query method
> > ???????
> > ???????
> > solrClient.query(collection, query);    method?
>
> Here's an example of setting credentials on an arbitrary request object
> that is then sent to a specific collectionthat should always work:
>
>   SolrClient client = new CloudSolrClient("localhost:9893");
>   String collection = "gettingstarted";
>   String username = "test";
>   String password = "password";
>
>   SolrQuery query = new SolrQuery();
>   query.setQuery("*:*");
>   // Do any other query setup needed.
>
>   SolrRequest<QueryResponse> req = new QueryRequest(query);
>   req.setBasicAuthCredentials(username, password);
>   QueryResponse rsp = req.process(client, collection);
>   System.out.println("numFound: " + rsp.getResults().getNumFound());
>
> You can use a similar approach with UpdateRequest to what I've done here
> with QueryRequest.
>
> When you use the sugar methods (like query, update, commit, etc),
> SolrClient builds a request object and then uses the "process" method on
> the request.  The example above just makes this more explicit.
>
> After I wrote the above code, I discovered that there is an alternate
> request method that includes the collection parameter.  This method
> exists in the 5.4 version of SolrJ, which is the minimum version
> required for setBasicAuthCredentials.  I think the user code would be
> about the same size either way.
>
> Thanks,
> Shawn
>
>

Reply via email to