You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Jason Gerlowski (JIRA)" <ji...@apache.org> on 2017/11/10 17:53:00 UTC

[jira] [Commented] (SOLR-11629) CloudSolrClient.Builder should accept a zk host

    [ https://issues.apache.org/jira/browse/SOLR-11629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16247844#comment-16247844 ] 

Jason Gerlowski commented on SOLR-11629:
----------------------------------------

I like the idea here, but it's a little tricky for {{CloudSolrClient}}, since zk-host and Solr-URL are both String values.

Java won't let you have two constructors, with the same signature, so the straightforward approach won't compile:

{code}
public Builder(String solrUrl) {...}
public Builder(String zkHost) {...}
{code}

We could do something fancier, like introduce SolrUrl and ZkHost String-subtypes, but that would require uses to wrap their String-literal in a {{new SolrUrl("....")}} declaration just to work around the type system.  Would clarify which parameters were "required", but also adds some user-irritation.  I'm ambivalent on whether or not it's worth it.

If no code solution presents itself here, maybe our best bet is just some Javadoc improvement.

> CloudSolrClient.Builder should accept a zk host
> -----------------------------------------------
>
>                 Key: SOLR-11629
>                 URL: https://issues.apache.org/jira/browse/SOLR-11629
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Varun Thacker
>
> Today we need to create an empty builder and then wither pass zkHost or withSolrUrl
> {code}
> SolrClient solrClient = new CloudSolrClient.Builder().withZkHost("localhost:9983").build();
> solrClient.request(updateRequest, "gettingstarted");
> {code}
> What if we have two constructors , one that accepts a zkHost and one that accepts a SolrUrl .
> The advantages that I can think of are:
> - It will be obvious to users that we support two mechanisms of creating a CloudSolrClient . The SolrUrl option is cool and applications don't need to know about ZooKeeper and new users will learn about this . Maybe our example's on the ref guide should use this? 
> - Today people can set both zkHost and solrUrl  but CloudSolrClient can only utilize one of them
> HttpClient's Builder accepts the host 
> {code}
> HttpSolrClient client = new HttpSolrClient.Builder("http://localhost:8983/solr").build();
> client.request(updateRequest, "techproducts");
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org