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


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 
1295204)
+++ solr/core/src/java/org/apache/solr/core/CoreContainer.java  (working copy)
@@ -870,6 +870,13 @@
   }
 
   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) {
+      SolrCore onlyCore = cores.get(0);
+      if(onlyCore != null) {
+        return onlyCore.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