【问题标题】:Apache Solr - Unable to access admin pageApache Solr - 无法访问管理页面
【发布时间】:2013-04-26 06:59:33
【问题描述】:

在 mac snow leopard 上,我使用 brew 安装了 Apache Solr 4.2.0 并使用以下命令触发了服务器,

Usage: $ solr path/to/config/dir

当我尝试使用以下链接在浏览器中访问管理页面时,出现如下所示的 SolrCore 初始化失败页面,

http://localhost:8983/solr/admin

collection1: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load config for solrconfig.xml 

页面也有消息,

There are no SolrCores running.
Using the Solr Admin UI currently requires at least one SolrCore.

非常感谢您对此的任何帮助。

【问题讨论】:

    标签: apache solr


    【解决方案1】:

    在 Solr config 目录的根目录中,有一个名为 solr.xml 的文件。此文件配置 Solr 内核。该文件可能包含:

      <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}" hostContext="${hostContext:}" zkClientTimeout="${zkClientTimeout:15000}">
        <core default="true" name="auction" instanceDir="auctionConfigDir" />
      </cores>
    

    重要的一点是将instanceDir="auctionConfigDir" 与实际的path/to/config/dir 匹配。如果 Solr 找不到您的配置文件的位置,它将无法启动核心。

    【讨论】:

    • 我不认为它是配置目录的路径。它是包含该配置目录的目录的路径。
    【解决方案2】:

    sudo vim /opt/solr-4.8.1/example/etc/jetty.xml 改变

    <!-- This connector is currently being used for Solr because it
          showed better performance than nio.SelectChannelConnector
          for typical Solr requests.  -->
    <Call name="addConnector">
      <Arg>
          <New class="org.eclipse.jetty.server.bio.SocketConnector">
            <Set name="host">127.0.0.1</Set>
            <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
            <Set name="maxIdleTime">50000</Set>
            <Set name="lowResourceMaxIdleTime">1500</Set>
            <Set name="statsOn">false</Set>
          </New>
      </Arg>
    </Call>
    

    <!-- This connector is currently being used for Solr because it
          showed better performance than nio.SelectChannelConnector
          for typical Solr requests.  -->
    <Call name="addConnector">
      <Arg>
          <New class="org.eclipse.jetty.server.bio.SocketConnector">
            <Set name="host">0.0.0.0</Set>
            <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
            <Set name="maxIdleTime">50000</Set>
            <Set name="lowResourceMaxIdleTime">1500</Set>
            <Set name="statsOn">false</Set>
          </New>
      </Arg>
    </Call>
    

    那么 sudo service solrd 重启

    【讨论】: