Solr-Collection或Core不重新加载schema.xml

时间:2014-04-08 12:53:33

标签: solr reloading

我正在使用Solar 4.6并更改schema.xml内的内容。为了在我的核心内更新schema.xml,我使用了zkcli。哪个工作正常,我能够在schema.xml下的Solr Admin GUI中看到修改后的cloud\tree\config\foobar\schema.xml

但是在打电话之后

  • http://localhost:8983/solr/admin/collections?action=RELOAD&name=foobar
  • http://localhost:8983/solr/admin/cores?action=RELOAD&name=foobar

旧的schema.xml仍然在名为foobar的核心中。

2 个答案:

答案 0 :(得分:0)

您必须在为其提供新架构后重新加载核心。

在查询中将名称替换为核心:

/solr/admin/cores?action=RELOAD&**core**=yourcorename

例如

http://localhost:8983/solr/admin/cores?action=RELOAD&core=foobar

答案 1 :(得分:0)

您对Core API的第二个HTTP请求是错误的。将name更改为core

http://localhost:8983/solr/admin/cores?action=RELOAD&name=foobar应该是 http://localhost:8983/solr/admin/cores?action=RELOAD&core=foobar

http://archive.apache.org/dist/lucene/solr/ref-guide/apache-solr-ref-guide-4.6.pdf(第277页)

RELOAD

RELOAD操作从现有的已注册Solr核心的配置加载新核心。而新核心正在初始化,现有的核心 将继续处理请求。当新的Solr核心准备就绪时,它将接管并卸载旧核心。

当您对磁盘上的Solr核心配置进行更改(例如添加新的字段定义)时,这非常有用。致电RELOAD行动 允许您应用新配置,而无需重新启动Web容器。但是,Core Container不会保留SolrCloud solr.xml solr/@zkHost参数,例如solr/cores/@hostPorthttp://localhost:8983/solr/admin/cores?action=RELOAD&core=core0,将被忽略。

RELOAD

<html> <head></head> <body> <form method="post"> <label>Assignment 1:</label><input type="text" name="assignmentOne" value="0"></br> <label>Assignment 2:</label><input type="text" name="assignmentTwo" value="0"></br> <label>Assignment 3:</label><input type="text" name="assignmentThree" value="0"></br> <label>Assignment 4:</label><input type="text" name="assignmentFour" value="0"></br> <label>Assignment 5:</label><input type="text" name="assignmentFive" value="0"></br> <label>Assignment 6:</label><input type="text" name="assignmentSix" value="0"></br> <label>Final Project:</label><input type="text" name="finalProject" value="0"></br> <label>Final Exam:</label><input type="text" name="finalExam" value="0"></br> <input type="button" name="calculate" value="Calculate Grade"></br> </form> <?php if ($_POST) { $assignmentOne = $_POST['assignmentOne']; $assignmentTwo = $_POST['assignmentTwo']; $assignmentThree = $_POST['assignmentThree']; $assignmentFour = $_POST['assignmentFour']; $assignmentFive = $_POST['assignmentFive']; $assignmentSix = $_POST['assignmentSix']; $finalProject = $_POST['finalProject']; $finalExam = $_POST['finalExam']; $grade = (((assignmentOne + assignmentTwo + assignmentThree + assignmentFour + assignmentFive + assignmentSix) / 6)* .50) + (finalProject * .30) + (finalExam * .20); echo "Final Grade $grade"; } ?> </div> </body> 操作接受一个参数核心,这是要重新加载的核心的名称。

另见https://cwiki.apache.org/confluence/display/solr/CoreAdmin+API#CoreAdminAPI-RELOAD