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

Russell Black commented on SOLR-3182:
-------------------------------------

Perhaps the confusion you point out could be mitigated with some messaging, 
something like this:

{code}
private String checkDefault(String name) {
  // if there is only one core, let it be the default without specifying a 
default in solr.xml
  if (StringUtils.isBlank(defaultCoreName) && StringUtils.isBlank(name.trim())) 
{
    if (cores.size() == 1) {
      return cores.values().iterator().next().getName();
    }
    else {
      throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "This 
server hosts multiple cores, " +
                "but no core name was supplied in the request and no 
defaultCoreName was declared in solr.xml" );
    }
  }
    return StringUtils.isBlank(name) || defaultCoreName.equals(name) ? "" : 
name;
  } 
{code}
                
> If there is only one core, let it be the default without specifying a default 
> in solr.xml
> -----------------------------------------------------------------------------------------
>
>                 Key: SOLR-3182
>                 URL: https://issues.apache.org/jira/browse/SOLR-3182
>             Project: Solr
>          Issue Type: Improvement
>          Components: multicore
>    Affects Versions: 3.6, 4.0
>            Reporter: Russell Black
>            Priority: Minor
>              Labels: patch
>         Attachments: SOLR-3182-default-core.patch
>
>   Original Estimate: 10m
>  Remaining Estimate: 10m
>
> Our particular need for this is as follows.  We operate in a sharded 
> environment with one core per server.  Each shard also acts as a collator.  
> We want to use a hardware load balancer to choose which shard will do the 
> collation for each query.  But in order to do that, each server's single core 
> would have to carry the same name so that it could be accessed by the same 
> url across servers.  However we name the cores by their shard number 
> (query0,query1,...) because it parallels with the way we name our 
> indexing/master cores (index0, index1,...).  This naming convention also 
> gives us the flexibility of moving to a multicore environment in the future 
> without having to rename the cores, although admittedly that would complicate 
> load balancing.  
> In a system with a large number of shards and the anticipation of adding more 
> going forward, setting a defaultCoreName attribute in each solr.xml file 
> becomes inconvenient, especially since there is no Solr admin API for setting 
> defaultCoreName.  It would have to be done by hand or with some automated 
> tool we would write in house.  Even if there were an API, logically it seems 
> unnecessary to have to declare the only core to be the default. 
> Fortunately this behavior can be implemented with the following simple patch:
> {code}
> Index: solr/core/src/java/org/apache/solr/core/CoreContainer.java
> ===================================================================
> --- solr/core/src/java/org/apache/solr/core/CoreContainer.java        
> (revision 1295229)
> +++ solr/core/src/java/org/apache/solr/core/CoreContainer.java        
> (working copy)
> @@ -870,6 +870,10 @@
>    }
>  
>    private String checkDefault(String name) {
> +    // if there is only one core, let it be the default without specifying a 
> default in solr.xml
> +    if (defaultCoreName.trim().length() == 0 && name.trim().length() == 0 && 
> cores.size() == 1) {
> +      return cores.values().iterator().next().getName();
> +    }
>      return name.length() == 0  || defaultCoreName.equals(name) || 
> name.trim().length() == 0 ? "" : name;
>    } 
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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

Reply via email to