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
>>>>>
>>>
>>
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to