【问题标题】:Change Solr base context path更改 Solr 基本上下文路径
【发布时间】:2016-03-17 11:50:31
【问题描述】:

我在 Ubuntu 机器上安装了 Solr(5.3.1 和 5.5.0)。

我用 apache 做了一个

ProxyPass /MySolr http://{url}:8984/solr

ProxyPassReverse /MySolr http://{url}:8984/solr

所以,当我加载 {url}/MySolr 时,仪表板不会加载,因为只有一个 json。

http://{url}/solr/admin/cores?wt=json&indexInfo=false&_=...

这很正常,因为要加载的正确 URL 是:

http://{url}/MySolr/admin/cores?wt=json&indexInfo=false&_=...

当我看到其他资源时,solr 会得到正确的 URL,例如:

http://{url}/MySolr/js/scripts/segments.js?_=5.5.0

有什么想法吗?

【问题讨论】:

    标签: apache solr jetty


    【解决方案1】:

    此过程将不起作用,因为可能此 json 是用绝对路径指定的。在这种情况下,Solr 不知道您的映射。如果要更改上下文路径,则需要在 Jetty 上更改此配置。这样 solr 将开始使用新的上下文。 第一步是创建一个符号链接MySolr 指向solr 目录(默认位于$SOLR_INSTALL_DIR/server/)。 现在更改 Jetty 配置文件 $SOLR_INSTALL_DIR/server/contexts/solr-jetty-context.xml 指向新的上下文路径,如下所示:

    <Configure class="org.eclipse.jetty.webapp.WebAppContext">
      <Set name="contextPath"><Property name="hostContext" default="/MySolr"/></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>
    

    现在只需重新启动 Solr 即可使用新的基本上下文路径进行访问。

    【讨论】:

    • 有效!!真的谢谢!!
    • 在哪个级别创建符号链接? $SOLR_INSTALL_DIR/server/MySolr -> $SOLR_INSTALL_DIR/server/solr ?
    • @GéraldReinhart 你试过没有符号链接吗?
    • 我找到了另一个解决方案。使用 jetty.home 和 jetty.base 设置,我们设法基于相同的 solr 安装部署了 2 个不同的实例。在每个实例上,我们都可以定义 url 上下文。 : jetty.home 是 solr 发行版本身 jetty.base 定义了一个实例的具体设置 : solr-jetty-context.xml 见eclipse.org/jetty/documentation/9.3.x/…
    猜你喜欢
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    相关资源
    最近更新 更多