6

I have made some changes at Solr Schema file and I see I 'am forced to restart SolR in order to have Solr running with new schema updates.

This is hosted on a server where solr is running from a start.jar file but I'am not sure how it was started(maybe with nohup)

I have found a way to stop SolR from another question(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}'`

After this, I start SolR with "java -jar start.jar".

Is this a correct way to do the restart or is there built-in/better way to restart the jar?

3 Answers 3

4

At Websolr, we use a combination of a custom init.d script plus Monit to start Solr and ensure that it stays running.

That said, for a simpler self-hosted setup, I would recommend using Upstart to start and stop Solr, if your system has Upstart available. Upstart scripts have the benefit of being fairly simple, and Upstart does a good job restarting processes in the event they crash. Plus the start and stop commands (start and stop, respectively) are pretty easy to remember for the next time you need to make Solr aware of new configs.

Here is a good blog post covering starting Solr with Upstart. I've copied their upstart script below; be sure to update the relevant paths to match your system:

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
4

You can try this approach http://wiki.apache.org/solr/CoreAdmin#RELOAD.

Using a command like this

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

will just reload all your configuration files and you will not have problems in doing SOLR queries querying while the core is restarted.

3
  • 2
    This doesn't work in a standard installation. Probably I need to enable SolR multicore features to be able to use this kind of reload.
    – Orlando
    Commented Aug 25, 2011 at 15:51
  • 1
    It worked for me: My solr.xml cores configuration looks like this: <cores adminPath="/admin/cores" defaultCoreName="collection1"> <core name="collection1" instanceDir="." /> </cores> I used this link to reload core: localhost:8983/solr/admin/…
    – Dorin
    Commented Aug 26, 2011 at 10:23
  • Using the included Jetty (start.jar) seems a kludge. Consider setting it up in Tomcat in a multicore configuratiob. I included instructions in stackoverflow.com/questions/7188816/… Commented Aug 26, 2011 at 10:49
1

For SolrCloud, from the solr folder run:

bin/solr restart -e cloud -noprompt
1
  • When you execute this command, by default it does not use the system wide configuration located in /etc/default/solr.in.sh but uses the solr.in.sh script located next to the bin/solr script. Do not do this unless you specify the same global configuration to use like the default service does by specifying the environment variable: SOLR_INCLUDE="/etc/default/solr.in.sh"
    – Ben DeMott
    Commented Feb 8, 2017 at 19:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .