Thanks Christoper and Jason. Problem solved. What you mentioned works. Thanks a million. Have a good weekend.
Best, Ravion On Fri, Aug 10, 2018 at 3:31 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Ravion, > > What's wrong with "update request"? Updating a document that does not > exist... will add it. > > -chris > > On 8/10/18 3:01 PM, ☼ R Nair wrote: > > 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 > >>>>> > >>> > >> > > > >