重新启动 Solr 的正确方法是什么

重新启动 Solr 的正确方法是什么

我对 Solr Schema 文件做了一些更改,我发现我被迫重新启动 SolR 才能让 Solr 使用新的架构更新运行。

它托管在一台服务器上,其中 solr 从 start.jar 文件运行,但我不确定它是如何启动的(可能使用 nohup)

我已经找到了一种方法来阻止 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?

答案1

Websolr我们使用自定义init.d脚本和监控启动 Solr 并确保它保持运行。

也就是说,对于更简单的自托管设置,我建议使用暴发户如果您的系统有 Upstart,则启动和停止 Solr。Upstart 脚本的优点是相当简单,并且 Upstart 在进程崩溃时可以很好地重新启动进程。此外,启动和停止命令(分别为startstop)非常容易记住,以便您下次需要让 Solr 了解新配置时使用。

这是一篇很好的博客文章,涵盖了使用 Upstart 启动 Solr。我已将他们的 upstart 脚本复制到下面;请确保更新相关路径以匹配您的系统:

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

答案2

您可以尝试这种方法http://wiki.apache.org/solr/CoreAdmin#RELOAD

使用这样的命令

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

将重新加载所有配置文件,并且在核心重新启动时执行 SOLR 查询时不会遇到问题。

答案3

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

bin/solr restart -e cloud -noprompt

相关内容