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