Override contextPath on solr start from command li

2019-06-09 12:11发布

Is it possible to override jetty "contextPath" property when starting Solr 5 using command line arguments? I want something like

bin/solr -p 8983 -s "example/techproducts/solr" -a "-DcontextPath=/s"

So that the base url will be http://localhost:8983/s

To be precise, I want to override exactly contextPath property

标签: solr Jetty solr5
1条回答
聊天终结者
2楼-- · 2019-06-09 12:43

Your question is about the context path of solr as jetty webapp.

Instead of

http://localhost:8983/solr/ 

you want to access solr via

http://localhost:8983/s/

imho this is not possible without changing a configuration file.

Be aware that with zookeeper and solrCloud there is the parameter hostContext in solr.xml and you can use system properties in solr.xml like hostContext.

Without zookeeper but with changing

server\contexts\solr-jetty-context.xml

you will get what you want:

change from

<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath"><Property name="hostContext" default="/solr"/></Set>
  <Set name="war"><Property name="jetty.base"/>/solr-webapp/webapp</Set>
  <Set name="defaultsDescriptor"><Property name="jetty.base"/>/etc/webdefault.xml</Set>
  <Set name="extractWAR">false</Set>
</Configure>

to this:

<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath"><SystemProperty name="hostContext" default="/solr"/></Set>
  <Set name="war"><Property name="jetty.base"/>/solr-webapp/webapp</Set>
  <Set name="defaultsDescriptor"><Property name="jetty.base"/>/etc/webdefault.xml</Set>
  <Set name="extractWAR">false</Set>
</Configure>

Now you can start with

solr start -a "-DhostContext=/s"
查看更多
登录 后发表回答