Do you feel that this is only partially complete? Best, Ravion
On Fri, Aug 10, 2018, 1:37 PM ☼ R Nair <ravishankar.n...@gmail.com> wrote: > I saw this. Please provide for add. My issue is with add. There is no > "AddRequesg". So how to do that, thanks > > Best Ravion > > On Fri, Aug 10, 2018, 12:58 PM Jason Gerlowski <gerlowsk...@gmail.com> > wrote: > >> The "setBasicAuthCredentials" method works on all SolrRequest >> implementations. There's a corresponding SolrRequest object for most >> common Solr APIs. As you mentioned, I used QueryRequest above, but >> the same approach works for any SolrRequest object. >> >> The specific one for indexing is "UpdateRequest". Here's a short example >> below: >> >> final List<SolrInputDocument> docsToIndex = new ArrayList<>(); >> ...Prepare your docs for indexing.... >> final UpdateRequest update = new UpdateRequest(); >> update.add(docsToIndex); >> update.setBasicAuthCredentials("solr", "solrRocks"); >> update.process(client, "techproducts"); >> On Fri, Aug 10, 2018 at 12:47 PM ☼ R Nair <ravishankar.n...@gmail.com> >> wrote: >> > >> > Hi Jason, >> > >> > Thanks for replying. >> > >> > I am adding a document, not querying. I am using 7.3 apis. Adding a >> > document is done via solrclient.add(....). How to set authentication in >> > this case? Seems I can't use SolrRequest. >> > >> > Thx, bye >> > RAVION >> > >> > On Fri, Aug 10, 2018, 10:46 AM Jason Gerlowski <gerlowsk...@gmail.com> >> > wrote: >> > >> > > I'd tried to type my previous SolrJ example snippet from memory. That >> > > didn't work out so great. I've corrected it below: >> > > >> > > final List<String> zkUrls = new ArrayList<>(); >> > > zkUrls.add("localhost:9983"); >> > > final SolrClient client = new CloudSolrClient.Builder(zkUrls, >> > > Optional.empty()).build(); >> > > >> > > final Map<String, String> queryParamMap = new HashMap<String, >> String>(); >> > > queryParamMap.put("q", "*:*"); >> > > final QueryRequest query = new QueryRequest(new >> > > MapSolrParams(queryParamMap)); >> > > query.setBasicAuthCredentials("solr", "solrRocks"); >> > > >> > > query.process(client, "techproducts"); // or, client.request(query) >> > > On Fri, Aug 10, 2018 at 10:12 AM Jason Gerlowski < >> gerlowsk...@gmail.com> >> > > wrote: >> > > > >> > > > I would also recommend removing the username/password from your Solr >> > > > base URL. You might be able to get things working that way, but >> it's >> > > > definitely less common, and it wouldn't surprise me if some parts of >> > > > SolrJ mishandle a URL in that format. Though that's just a hunch on >> > > > my part. >> > > > On Fri, Aug 10, 2018 at 10:09 AM Jason Gerlowski < >> gerlowsk...@gmail.com> >> > > wrote: >> > > > > >> > > > > Hi Ravion, >> > > > > >> > > > > (Note: I'm not sure what Solr version you're using. My answer >> below >> > > > > assumes Solr 7 APIs. These APIs don't change often, but you might >> > > > > find them under slightly different names in your version of Solr.) >> > > > > >> > > > > SolrJ provides 2 ways (that I know of) to provide basic auth >> > > credentials. >> > > > > >> > > > > The first (and IMO simplest) way is to use the >> setBasicAuthCredentials >> > > > > method on each individual SolrRequest. You can see what this >> looks >> > > > > like in the example below: >> > > > > >> > > > > final SolrClient client = new >> > > > > >> CloudSolrCLient.Builder(solrURLs).withHttpClient(myHttpClient).build(); >> > > > > client.setDefaultCollection("collection1"); >> > > > > SolrQuery req = new SolrQuery("*:*"); >> > > > > req.setBasicAuthCredentials("yourUsername", "yourPassword); >> > > > > client.query(req); >> > > > > >> > > > > SolrJ also has a PreemptiveBasicAuthClientBuilderFactory, which >> reads >> > > > > the username/password from Java system properties, and is used to >> > > > > configure the HttpClient that SolrJ creates internally for sending >> > > > > requests. I find this second method a little more complex, and it >> > > > > looks like you're providing your own HttpClient anyways, so for >> both >> > > > > those reasons I'd recommend sticking with the first approach (at >> least >> > > > > while you're getting things up and running). >> > > > > >> > > > > Hope that helps. >> > > > > >> > > > > Best, >> > > > > >> > > > > Jason >> > > > > >> > > > > On Thu, Aug 9, 2018 at 5:47 PM ☼ R Nair < >> ravishankar.n...@gmail.com> >> > > wrote: >> > > > > > >> > > > > > Dear all, >> > > > > > >> > > > > > I have tried my best to do it - searched all Google. But I an=m >> > > > > > unsuccessful. Kindly help. >> > > > > > >> > > > > > We have a solo environment. Its secured with userid and >> password. >> > > > > > >> > > > > > I used >> > > > > > >> > > >> CloudSolrClient.Builder(solrURLs).withHttpClient(mycloseablehttpclient) >> > > > > > method to access it. The url is of the form >> http:/userid:password@/ >> > > > > > passionbytes.com/solr. I set defaultCollectionName later. >> > > > > > In mycloseablehttpclient, I set Basic Authentication with >> > > > > > CredentialProvider and gave url, port, userid and password. >> > > > > > I have changed HTTPCLIENT to 4.4.1 version, even tried 4.5.3. >> > > > > > >> > > > > > Still, I get the JSON response from server, saying the URL did >> not >> > > return >> > > > > > the state information from SOLR. It says HTTP 401 , >> Authentication >> > > Required. >> > > > > > >> > > > > > This is fourth day on this problem. Any help is appreciated. I >> have >> > > done >> > > > > > whatever is available through documentation and/or Google. >> > > > > > >> > > > > > Best, >> > > > > > Ravion >> > > >> >