Solr Konfiguration

URL-Weiterleitung mittels Jetty

Standardmäßig leitet Solr die Anfragen auf den Ordner \solr weiter. Wenn man nun einen anderen Ordner als Weiterleitung nehmen will, muss man die root\server\etc\jetty.xml ändern und zwar den RewriteHandler:

     <New id="RewriteHandler" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
      <Set name="rewriteRequestURI">true</Set>
      <Set name="rewritePathInfo">false</Set>
      <Set name="originalPathAttribute">requestedPath</Set>

      <Call name="addRule">
        <Arg>
          <New class="org.eclipse.jetty.rewrite.handler.RedirectRegexRule">
            <Set name="regex">^/$</Set>
            <Set name="replacement">/solr/freelancer/</Set>
          </New>
        </Arg>
      </Call>
     </New>

/solr/ aus der URL rausbekommen

in
C:\solr-6.4.1\server\contexts\solr-jetty-context.xml
muss der context-path geändert werden, also nicht mehr

<Property name="hostContext" default="/solr"/>

sondern:

<?xml version="1.0"?>
<!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>

dann muss aber auch die root\server\etc\jetty.xml geändert werden und hier im replacement das /solr/ wieder rausgenommen werden, also

          <New class="org.eclipse.jetty.rewrite.handler.RedirectRegexRule">
            <Set name="regex">^/$</Set>
            <Set name="replacement">/solr/freelancer/</Set>
          </New>