转贴请声明原文:http://blog.csdn.net/duck_genuine/article/details/8749121
可以在solr.xml上配置 shardHandlerFactory,这样不用在solrconfig.xml配置重复,
单独配置,可以给所有searchandler共用。具体如何配置wiki还没有写。不过应该跟普通的plug配置一样。
protected void initShardHandler(Config cfg) { PluginInfo info = null; if (cfg != null) { Node shfn = cfg.getNode("solr/cores/shardHandlerFactory", false); if (shfn != null) { info = new PluginInfo(shfn, "shardHandlerFactory", false, true); } else { Map m = new HashMap(); m.put("class",HttpShardHandlerFactory.class.getName()); info = new PluginInfo("shardHandlerFactory", m, null, Collections.<PluginInfo>emptyList()); } } HttpShardHandlerFactory fac = new HttpShardHandlerFactory(); if (info != null) { fac.init(info); } shardHandlerFactory = fac; }
后面发现在后台动态创建solrcore后,solr.xml被重新持久化了,但shardHandlerFactory的配置不见了,即使初始化的solrcore都有没有问题,但如果结点被意外关闭,还是得重新配置shardHandlerFactory。所以这个问题还真是隐藏,开始测试能从solr.xml配置真是爽,这个bug还是很不地道,无奈先在solrconfig.xml上配置它了。
需要解决这个问题。。
4.3跟5.0也将抛弃solr.xml http://wiki.apache.org/solr/Core%20Discovery%20%284.3%20and%20beyond%29s
leader选举的一个问题
某一个shard 有一个leader跟一个follower,现在将leader的core unload掉,发现另一个follower并不会被选 举为leader,将leader的那个结点stop后,follower才被选 举为leader。
当时很奇怪现象,所有leader都没了,只有follower,但是可以搜索,但不可以被 更新。
所以那unload最好不要是leader了,这个要注意,但可能这是一个bug,没有将unload作为将leader去除,然后再作选 举。
今天好像试过又可以,TMD奇怪
转贴请声明原文:http://blog.csdn.net/duck_genuine/article/details/8749121