如何在Tomcat中安装Solr?

我把文件apache-solr-3.5.0.war放在文件夹C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps

自动创build一个文件夹“apache-solr-3.5.0”。 而当我去: http://localhost:8080/apache-solr-3.5.0/

我可以看到消息“欢迎来到Solr!”。

现在,当我对文件夹C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps的文件solr-4.3.1.war

文件夹solr-4.3.1是自动创build的。 但现在当我去的时候:

 http://localhost:8080/solr-4.3.1/ OR to http://localhost:8080/solr-4.3.1/admin.html 

我看到错误:

HTTP状态404 – 键入状态报告

消息:description请求的资源不可用。

Apache Tomcat / 6.0.37

我错过了什么?

更新:

这在Tomcat控制台窗口中显示:

 INFO: Solr home set to 'solr/' 12-jul-2013 18:27:36 org.apache.solr.core.SolrResourceLoader <init> INFO: Solr home set to 'solr\.\' 12-jul-2013 18:27:36 org.apache.solr.common.SolrException log SEVERE: java.lang.RuntimeException: Can't find resource 'solrconfig.xml' in class sath or 'solr\.\conf/', cwd=C:\Program Files\Apache Software Foundation\Tomcat 6.0 at org.apache.solr.core.SolrResourceLoader.openResource(SolrResourceLoad er.java:268) 12-jul-2013 18:27:36 org.apache.solr.servlet.SolrDispatchFilter init INFO: user.dir=C:\Program Files\Apache Software Foundation\Tomcat 6.0 12-jul-2013 18:27:36 org.apache.solr.servlet.SolrDispatchFilter init INFO: SolrDispatchFilter.init() done 12-jul-2013 18:27:36 org.apache.solr.servlet.SolrServlet init INFO: SolrServlet.init() 12-jul-2013 18:27:36 org.apache.solr.core.SolrResourceLoader locateSolrHome INFO: No /solr/home in JNDI 12-jul-2013 18:27:36 org.apache.solr.core.SolrResourceLoader locateSolrHome INFO: solr home defaulted to 'solr/' (could not find system property or JNDI) 12-jul-2013 18:27:36 org.apache.solr.servlet.SolrServlet init INFO: SolrServlet.init() done 12-jul-2013 18:27:36 org.apache.solr.core.SolrResourceLoader locateSolrHome INFO: No /solr/home in JNDI 12-jul-2013 18:27:36 org.apache.solr.core.SolrResourceLoader locateSolrHome INFO: solr home defaulted to 'solr/' (could not find system property or JNDI) 12-jul-2013 18:27:36 org.apache.solr.servlet.SolrUpdateServlet init INFO: SolrUpdateServlet.init() done 12-jul-2013 18:27:36 org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive solr-4.3.1.war 12-jul-2013 18:27:36 org.apache.catalina.core.StandardContext start SEVERE: Error filterStart 12-jul-2013 18:27:36 org.apache.catalina.core.StandardContext start SEVERE: Context [/solr-4.3.1] startup failed due to previous errors 12-jul-2013 18:27:36 org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory ROOT 12-jul-2013 18:27:36 org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080 12-jul-2013 18:27:36 org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 12-jul-2013 18:27:36 org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/56 config=null 12-jul-2013 18:27:36 org.apache.catalina.startup.Catalina start INFO: Server startup in 880 ms 

我的解压缩Solr文件夹包含这些文件夹:

 css img js META-INF tpl WEB-INF 

更新

添加到我的环境variables后:

 JAVA_OPTS = $JAVA_OPTS -Dsolr.solr.home=C:/Databases/solr-4.3.1/example/solr 

启动后我得到这2个错误:

 SEVERE: org.apache.solr.common.SolrException: Invalid luceneMatchVersion 'LUCENE_43', valid values are: [LUCENE_20, LUCENE_21, LUCENE_22, LUCENE_23, LUCENE_24,LUCENE_29, LUCENE_30, LUCENE_31, LUCENE_32, LUCENE_33, LUCENE_34,LUCENE_35, LUCENE_CURRENT] or a string in format 'VV' SEVERE: Exception starting filter SolrRequestFilter org.apache.solr.common.SolrException: Could not find necessary SLF4j logging jars. If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext directory. For other containers, the corresponding directory should be used. 

完整日志:

 SEVERE: org.apache.solr.common.SolrException: Invalid luceneMatchVersion 'LUCENE _43', valid values are: [LUCENE_20, LUCENE_21, LUCENE_22, LUCENE_23, LUCENE_24, LUCENE_29, LUCENE_30, LUCENE_31, LUCENE_32, LUCENE_33, LUCENE_34, LUCENE_35, LUC ENE_CURRENT] or a string in format 'VV' at org.apache.solr.core.Config.parseLuceneVersionString(Config.java:353) 13-jul-2013 13:46:02 org.apache.solr.servlet.SolrDispatchFilter init INFO: user.dir=C:\Program Files\Apache Software Foundation\Tomcat 6.0 13-jul-2013 13:46:02 org.apache.solr.servlet.SolrDispatchFilter init INFO: SolrDispatchFilter.init() done 13-jul-2013 13:46:02 org.apache.solr.servlet.SolrServlet init INFO: SolrServlet.init() 13-jul-2013 13:46:02 org.apache.solr.core.SolrResourceLoader locateSolrHome INFO: No /solr/home in JNDI 13-jul-2013 13:46:02 org.apache.solr.core.SolrResourceLoader locateSolrHome INFO: using system property solr.solr.home: C:\Databases\solr-4.3.1\exam ple\solr 13-jul-2013 13:46:02 org.apache.solr.servlet.SolrServlet init INFO: SolrServlet.init() done 13-jul-2013 13:46:02 org.apache.solr.core.SolrResourceLoader locateSolrHome INFO: No /solr/home in JNDI 13-jul-2013 13:46:02 org.apache.solr.core.SolrResourceLoader locateSolrHome INFO: using system property solr.solr.home: C:\Databases\solr-4.3.1\exam ple\solr 13-jul-2013 13:46:02 org.apache.solr.servlet.SolrUpdateServlet init INFO: SolrUpdateServlet.init() done 13-jul-2013 13:46:02 org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive solr-4.3.1.war 13-jul-2013 13:46:03 org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter SolrRequestFilter org.apache.solr.common.SolrException: Could not find necessary SLF4j logging jar s. If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext direct ory. For other containers, the corresponding directory should be used. For more information, see: http://wiki.apache.org/solr/SolrLogging 

更新3

我现在得到“HTTP状态503 – 服务器正在closures”错误。

 14-jul-2013 14:21:57 org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performanc e in production environments was not found on the java.library.path: C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin;C:\Windows\Sun\Java\bin;C:\Windo ws\system32;C:\Windows;C:\Program Files\Common Files\Microsoft Shared\Windows Li ve;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\ system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShe ll\v1.0\;C:\Program Files\TortoiseSVN\bin;c:\msxsl;C:\Program Files (x86)\Window s Live\Shared;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program File s (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110 \Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Prog ram Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQ L Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL S erver\110\DTS\Binn\;C:\Program Files (x86)\Java\jre6\bin;C:\Program Files\Java\j re631\bin;. 14-jul-2013 14:21:57 org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 14-jul-2013 14:21:57 org.apache.catalina.startup.Catalina load INFO: Initialization processed in 283 ms 14-jul-2013 14:21:57 org.apache.catalina.core.StandardService start INFO: Starting service Catalina 14-jul-2013 14:21:57 org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.37 14-jul-2013 14:21:57 org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor manager.xml 14-jul-2013 14:21:57 org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive solr-4.3.1.war log4j:WARN No appenders could be found for logger (org.apache.solr.servlet.SolrD ispatchFilter). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more in fo. 14-jul-2013 14:21:58 org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory ROOT 14-jul-2013 14:21:58 org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080 14-jul-2013 14:21:58 org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 14-jul-2013 14:21:58 org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/55 config=null 14-jul-2013 14:21:58 org.apache.catalina.startup.Catalina start INFO: Server startup in 719 ms 

我在这里看到这个错误的东西 ,但添加我的logging.properties

在Tomcat中安装Solr

以前的要求

1 – Windows操作系统(Windows 7,8,Xp .. ..等)

2 – Java 6或以上

3 – Solr 4.0.0或以上

4 – Apache-tomcat 6或以上。

在Tomcat服务器上获取Solr的步骤

1.在你的机器上安装Tomcat,并确保它已经准备好启动(使用localhost:8080进行检查)

2.安装Solr4.0发行包apache-solr-4.0.0.zip,解压缩到C:\ apache-solr-4.0.0等本地目录下。

3.在C:\ solr_home等本地机器上制作一个名为solr-home的文件夹。

4.回到您下载的C:\ apache-solr-4.0.0的solr分发包。 看看Examples / solr(“C:\ solr-4.4.0 \ example \ solr”)文件夹。 将所有这些文件复制到C:\ solr_home文件夹(将关闭异常的服务器)

5.查看C:\ solr-home \ solr,你会看到名字为collection1和bin的两个文件夹,将这两个文件夹复制到C:\ solr_home(如果lib没有复制“severe error filterstart”Exception来)

6.从C:\ apache-solr-4.0.0 \ example \ lib \ ext将SLF4J和log4j.jar文件复制到Tomcat的Lib文件夹C:\ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ lib( https:// wiki.apache.org/solr/SolrLogging#Using_the_example_logging_setup_in_containers_other_than_Jetty )

7.将apache-solr-4.0.war(重命名为solr.war)从“C:\ solr-4.4.0 \ dist”目录下复制到Tomcat中的webapps目录下(C:\ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ web应用)

如果tomact已经启动,那么solr文件夹将创建到“C:\ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ webapps \ solr \ WEB-INF \ web.xml”编辑web.xml取消注释条目并编辑(由于初始化失败,异常SolrCore'collection1'不可用)

 <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>C:\solr_home\solr</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> 

9.启动Tomcat并检查localhost:8080 / solr dashBoard会来

它在不同的论坛上为我解决了,这里是我遵循的步骤:

  1. 提取solr431包。 在我的情况下,我在“E:\ solr-4.3.1 \ example \ solr”
  2. 现在将提取的软件包(E:\ solr-4.3.1 \ example \ solr)中的solr目录复制到TOMCAT_HOME目录中。 在我的情况下,TOMCAT_HOME dir指向E:\ Apache \ Tomcat 6.0。
  3. 我现在可以将SOLR_HOME称为“E:\ Apache \ Tomcat 6.0 \ solr”(请记住这一点)
  4. 将solr.war文件从解压缩包复制到SOLR HOME目录,例如E:\ Apache \ Tomcat 6.0 \ solr。 这是创建上下文所必需的。 因为我不想通过这个JAVA OPTS
  5. 同时将solr.war文件复制到TOMCAT_HOME \ webapps中以进行部署
  6. 如果你启动tomcat,你会得到Shawn提到的错误。 S0你需要将所有5个jar文件从solr解压包(E:\ solr-4.3.1 \ example \ lib \ ext)复制到TOMCAT_HOME \ lib目录中:

    1. 七月至SLF4J-1.6.6,
    2. JCL-过SLF4J-1.6.6,
    3. SLF4J-log4j12-1.6.6,
    4. SLF4J-API-1.6.6,
    5. log4j的-1.2.16
  7. 同时将log4js.properties文件从E:\ solr-4.3.1 \ example \ resources目录复制到TOMCAT_HOME \ lib目录。

  8. 现在,如果你启动tomcat你不会有任何问题。

使用Solr 4.3.0(及更高版本)更新Solr的日志记录方式。 如果你检查你的Tomcat日志,你很可能会看到一个“Filter Exception”错误。 请参阅Solr日志记录 – 使用Jetty以外的容器中的示例日志记录设置获取Solr 4.3.0及更高版本在Tomcat上运行所需的步骤。

根据我的笔记(前一段时间我做了这个程序),我不得不在Tomcat“caralina.sh”(或者catalina.bat,如果你使用windows)中增加一行:

 export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr/example/solr" 

这用于指定solr“配置”和“数据”目录(数据将存储在哪里)的位置。 在我的情况下是“/ opt / solr / example / solr”,但是你需要使用你的系统中有“配置”文件和“数据”目录的目录。 例如,如果您在C:窗口中提取下载的Solr软件包,则应该使用“C:\ solr-4.3.1 \ examples \ solr”。 这意味着,你将在Tomcat中部署“Solr.war”(你已经这样做了),但是存储的Solr和“data”的配置将在catalina.bat(JAVA_OPS,例如:C: \ solr的-4.3.1 \例子\ SOLR)是。


在Windows的Tomcat中安装Solr的好的说明: http : //liuweipingblog.cn/java/install-lucene-solar-with-tomcat-on-windows/

由于solr的单独记录机制,发生此错误。 经过研究发现,你需要在你的tomcat lib中添加slf4j的日志jar。 (按照我的本地机器:C:\ xampp \ tomcat \ lib)

从下面的url下载并在Tomcat的lib中复制jar文件

http://www.slf4j.org/download.html

完成上述步骤后,在本地系统中工作正常。

关于lucene版本的错误表明您仍在部署3.5版本。 我的意思是,我相信你把4.x的战争,但由于某种原因(忘记删除战争,tmp文件)3.5仍然存在。 当您使用系统属性指示solr.home时,它将被您正在部署的“all”solr读取。 所以在你的情况下,4.3.1对给定的solr home(包含lucene43)感到高兴,但是3.5抛出异常(4.3对于3.5是未知的)

它包括几个步骤

  1. 下载solr-XXX.zip并解压到solr-XXX。

  2. 复制solr-XXX.war(解压缩.zip后从solr-XXX / dist文件夹)到Tomcat / webapps。 然后解压.war文件(使用WinZip等)。 这将创建文件夹solr-XXX。 将log4j-XXX.jar,slf4j-api-XXX.jar,slf4j-log4j12-XXX.jar,commons-logging-XXX.jar复制到Tomcat / webapps / solr-XXX / WEB-INF / lib中。 并创建一个文件夹Tomcat / webapps / solr-XXX / WEB-INF / classes并从solr-XXX \ example \ resources复制log4j.properties

  3. 在这里创建一个目录MySolrHome并复制solr-XXX \ example \ solr文件夹的内容

  4. 添加JAVA_OPTS = -Dsolr.solr.home =路径/到/ MySolrHome /

启动Tomcat