这是重新启动Solr的正确方法

我在Solr Schema文件中做了一些修改,我看到我被迫重新启动SolR以使Solr运行新的模式更新。

这是托pipe在一个服务器上solr从start.jar文件运行,但我不知道它是如何开始的(也许没有)

我find了一种方法来阻止SolR从另一个问题( https://stackoverflow.com/questions/2150767/how-to-start-solr-automatically ):

kill `ps uax | grep -i "java -jar start.jar" | head -n 1 | awk '{print $2}'` 

之后,我用“java -jar start.jar”启动SolR。

这是一个正确的方法来重新启动或有内置/更好的方式来重新启动jar子?

在Websolr ,我们使用自定义的init.d脚本和Monit的组合来启动Solr并确保它保持运行。

这就是说,对于一个更简单的自我托pipe的设置,如果你的系统有Upstart,我会build议使用Upstart来启动和停止Solr。 Upstart脚本的好处是相当简单,Upstart在崩溃事件中很好地重启了进程。 另外,启动和停止命令(分别为startstop )很容易记住,下次需要使Solr知道新的configuration时。

这里是一个很好的博客文章,涵盖了Solr和Upstart 。 我已经在下面复制了他们的新贵脚本。 一定要更新相关的path来匹配你的系统:

 description "Solr Search Server" # Make sure the file system and network devices have started before # we begin the daemon start on (filesystem and net-device-up IFACE!=lo) # Stop the event daemon on system shutdown stop on shutdown # Respawn the process on unexpected termination respawn # The meat and potatoes exec /usr/bin/java -Xms128m -Xmx256m -Dsolr.solr.home=/path/to/solr/home -Djetty.home=/path/to/jetty -jar /path/to/jetty/start.jar >> /var/log/solr.log 2>&1 

你可以试试这个方法http://wiki.apache.org/solr/CoreAdmin#RELOAD

使用这样的命令

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

将只重新加载所有的configuration文件,在核心重新启动时执行SOLR查询时不会出现问题。

对于SolrCloud,从solr文件夹运行:

 bin/solr restart -e cloud -noprompt 

你可以按CTRL + C它将停止solr并用java -jar start.jar重新启动