[
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: [email protected]
For additional commands, e-mail: [email protected]