[ https://issues.apache.org/jira/browse/SOLR-3182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13221005#comment-13221005 ]
Russell Black commented on SOLR-3182: ------------------------------------- bq. If you start with two cores open (and maybe even no default core), then close one core and all of a sudden the other becomes the default? I have thought about that situation. It is true that going from two cores to one would result in the remaining core becoming the default. However, this doesn't change the way the server presents itself to an application that expects a multi-core system, since the remaining core continues to be accessible by the same URL as it was before. It simply becomes accessible by an additional URL when it becomes the only core. Thanks for considering this patch. > 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