【问题标题】:How to set solr/home in linux OS?如何在 linux 操作系统中设置 solr/home?
【发布时间】:2010-11-17 06:37:16
【问题描述】:

我知道如何使用 Tomcat 6 配置 solr.home,但我不知道如何使用 Glassfish(V2.1) 设置 solr.home。我试图将.profile中的solr.home设置为研究员:

export solr.home=/home/huenzhao/search/solr
export solr/home=/home/huenzhao/search/solr
export solr.solr.home=/home/huenzhao/search/solr
export JAVA_OPTS=$JAVA_OPTS -Dsolr.solr.home=/home/huenzhao/search/solr

它们都不起作用。错误是:

HTTP 状态 500 - solr 配置中的严重错误。检查你的日志 文件以获取有关可能出现问题的更多详细信息。如果你想 solr 配置错误后继续,更改: 为空为假 -------------------------------------------------- ------------ java.lang.RuntimeException:在中找不到资源“solrconfig.xml” 类路径或“solr/conf/”, cwd=/home/huenzhao/search/glassfish/domains/domain1/config at org.apache.solr.core.SolrResourceLoader.openResource(SolrResourceLoader.java:194) 在 org.apache.solr.core.SolrResourceLoader.openConfig(SolrResourceLoader.java:162) 在 org.apache.solr.core.Config.(Config.java:100) 在 org.apache.solr.core.SolrConfig.(SolrConfig.java:113) 在 org.apache.solr.core.SolrConfig.(SolrConfig.java:70) 在 org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:117) 在 org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:69) 在 org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:273) 在 org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:385) 在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:119) 在 org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4498) 在 org.apache.catalina.core.StandardContext.start(StandardContext.java:5317) 在 com.sun.enterprise.web.WebModule.start(WebModule.java:353) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:989) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:973) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:704) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1627) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1232) 在 com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:182) 在 com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:278) 在 com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:1005) 在

……

有人知道吗?

【问题讨论】:

    标签: solr tomcat6 catalina


    【解决方案1】:

    尝试设置以下内容:

    export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/home/huenzhao/search/solr/" 
    

    【讨论】:

    • 我试过了,还是不行!在 tomcat6 中设置 solr.home 的目标是在 tomcat6 启动时启动 solr。所以我认为问题是当 glassfish 启动时,solr 无法通过设置 solr.home 来启动。
    【解决方案2】:

    尝试从 Java 设置 Java 环境参数或编辑您的 VM 配置:

    System.setProperty("solr.solr.home", "/home/user/apache-solr-1.4/example/solr");
    

    在我的例子中,我只是将 'solr' 文件夹复制到 glassfish/domains/domain1/config 并且它起作用了。

    【讨论】:

      【解决方案3】:

      如果你在 tomcat 中作为容器运行 solr,你可以在这个 webapp 的 XML 描述符中指定 solr home。 (我的术语可能有点偏离)。

      我为每个要运行的 solr 实例都有 xml 片段,它们在 xml 片段中指定了自己的本地 solr 主目录。这些片段位于 /conf/Catalina/localhost 并且每个片段都管理一个 solr 实例。这样我就可以在同一台机器上拥有多个 solr 实例,每个实例都有自己的 solr home 变量。

      信息在这里: http://wiki.apache.org/solr/SolrTomcat

      特别是

      创建一个 Tomcat 上下文片段以 将 docBase 指向 $SOLR_HOME/apache-solr-1.3.0.war 文件 和 solr/home 到 $SOLR_HOME:


      符号链接 或将文件放入 $CATALINA_HOME/conf/Catalina/localhost/solr-example.xml, Tomcat 将自动选择的位置 它了。 Tomcat 删除文件 取消部署(自动发生 如果配置无效)。

      【讨论】:

      • 这是迄今为止将 Solr 部署和配置为 tomcat 上下文的最简单方法。
      猜你喜欢
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多