如何在Tomcat本地运行Solr 4?

时间:2013-06-10 03:11:28

标签: windows tomcat solr

我一直在尝试在家用电脑上设置Solr 4.3(在Tomcat 7中),但它没有运行。我已经设置了Tomcat并部署了solr.war文件,该文件在Tomcat的Tomcat Web Apps Manager屏幕中解压缩并显示但未运行并单击开始按钮不会执行任何操作(因为它应该已经运行)首先)。

这是我在Tomcat中的solr.xml上下文文件,它还提供了solr.war文件的路径以及我的solr Core所在的位置(默认的Collection1):

<Context path="/solr" docBase="C:/LocalApps/Tomcat/apache-tomcat-7.0.40/webapps/solr.war" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="C:/LocalApps/Solr/solr-4.3.0/example/solr/" override="true"/>
</Context>

这是tomcat中的错误日志:

INFO: Starting Servlet Engine: Apache Tomcat/7.0.40
Jun 09, 2013 11:04:07 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor C:\LocalApps\Tomcat\apache-tomcat-7.0.40\conf\Catalina\localhost\solr.xml
Jun 09, 2013 11:04:07 PM org.apache.catalina.startup.HostConfig deployDescriptor
WARNING: A docBase C:\LocalApps\Tomcat\apache-tomcat-7.0.40\webapps\solr.war inside the host appBase has been specified, and will be ignored
Jun 09, 2013 11:04:07 PM org.apache.catalina.startup.SetContextPropertiesRule begin
WARNING: [SetContextPropertiesRule]{Context} Setting property 'debug' to '0' did not find a matching property.
Jun 09, 2013 11:04:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Jun 09, 2013 11:04:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/solr] startup failed due to previous errors

6 个答案:

答案 0 :(得分:26)

您需要按照here所述安装用于记录的jar。

将所有提到的文件复制到tomcat / lib目录中。并重新启动Tomcat。

  
      
  1. 将jar从solr/example/lib/ext复制到容器的主lib目录中。这些广告罐将设置为SLF4Jlog4j。   确切地说这个lib目录是高度可变的。对于Debian或   使用OS供应商提供的Tomcat软件包的Ubuntu服务器,   这可能是/usr/share/tomcat6/lib或。/usr/share/tomcat7/lib   solr/example/resources/log4j.properties
  2.   
  3. 将日志配置从classpath复制到该位置   java option -Dlog4j.configuration=file:///path/to/log4j.properties。通常,您可以使用与jar文件相同的位置   以上。编辑首选日志目标的配置文件。
  4.   
  5. 或者,如果您未在类路径上放置log4j.properties,请设置{{1}}
  6.   

答案 1 :(得分:5)

  1. 下载最新的solr-4.x.zip文件。
  2. 在C:\ solr setup。
  3. 之类的地方解压缩zip文件
  4. 应安装Apache Tomcat(版本大于5)和Java 6或更高版本。将solr-4.x.war文件从“C:\ solr setup \ solr-4.3.0 \ dist”复制到“Apache Tomcat”webapps文件夹,最有可能是在C:\ Program Files \ Apache ... \ Tomcat ... \ webapps \并将复制的war文件重命名为一些有意义的名称,如solrTest.Start Tomcat。如果已经运行,则重启Tomcat。将创建与war文件(solrTest)同名的新文件夹。
  5. 停止Tomcat。将bin和collection1文件夹从C:\ solr setup \ solr-4.x \ example \ solr复制到C:\ Program Files \ Apache ... \ Tomcat ... \ webapps \ solrTest。
  6. 将所有jar从C:\ solr setup \ solr-4.x \ example \ lib \ ext复制到C:\ Program Files \ Apache ... \ Tomcat ... \ lib。 SOLR 4.x将使用这些罐子进行记录。
  7. 在C:\ Program Files \ Apache ... \ Tomcat ... \ conf \ Catalina \ localhost \中创建xml文件,其名称与war文件(solrTest.xml)相同,内容如下所示。 Tomcat会查找此xml文件以获取应用程序的启动。
  8. 更新C:\ Program Files \ Apache ... \ Tomcat ... \ webapps \ solrTest \ collection1 \ conf \ schema.xml并添加必填字段并进行更新。
  9. 如果不需要,请删除复制字段。复制字段的使用可在同一文件中使用。
  10. 更新C:\ Program Files \ Apache ... \ Tomcat ... \ webapps \ solrTest \ collection1 \ conf \ solrconfig.xml。 更新标记中的物理索引路径,如$ {solr.data.dir:C:/ Indexes / solrTest Index /}。如果它将被注释,则默认情况下将使用C:\ Program Files \ Apache ... \ Tomcat ... \ webapps \ solrTest \ collection1 \ data \目录。 DataDir标记在文件中可用。无需添加自己的。
  11. 更新复制条目以在复制请求处理程序中设置主服务器或从服务器。
  12. 尝试访问“... localhost:portNumber / solrTest”。如果没有错误,那么您已成功配置SOLR 4.x。

答案 2 :(得分:3)

在Tomcat上开始使用Solr的最简单方法是使用HDS(Heliosearch Distribution for Solr), Tomcat/Solr distribution

它是Apache Solr的超集,包含一个额外的“服务器”目录,它是预先配置的(线程,日志记录,连接设置,消息大小等)基于Tomcat的Solr服务器。

其他一些实施说明:

  • 启动脚本可以从任何地方运行,并允许传递JVM args 在命令行上(就像jetty一样,所以它更容易使用)
  • 启动脚本解决已知的JVM错误
  • 启动脚本允许从命令行设置端口,默认停止 基于http端口的端口,可以轻松运行多个服务器 一个盒子)
  • zkcli,solr zookeeper工具的启动脚本,将在必要时自动爆炸WAR
  • “server”目录一直保持干净但是填满了所有内容 tomcat在“server / tc”目录下

开始:

$ cd server
$ bin/startup.sh

从另一个端口开始(例如7574):

$ cd server
$ bin/startup.sh -Dhttp.port=7574

要关闭:

$ cd server
$ bin/shutdown.sh -Dhttp.port=7574

脚本甚至接受-Djetty.port = 7574以使其更容易 使用码头从开始示例切割n-paste。 “示例”目录 仍然存在,所以你仍然可以运行基于码头的服务器 想。

答案 3 :(得分:2)

检查Tomcat创建的localhost_yyyy_mm_dd.log日志。它通常应该向您显示此问题的原因。完整堆栈跟踪可能无法在控制台中显示...

答案 4 :(得分:2)

我在做同样事情时遇到了一些问题,官方文档对此并没有多大帮助。我写了一篇关于它的blog post,内容如下:

  1. Solr install

    在磁盘上的某个位置下载并解压缩最新版本的Solr。

    cd /tmp
    wget "http://mirrors.ircam.fr/pub/apache/lucene/solr/4.6.0/solr-4.6.0.tgz"
    cd /opt
    sudo tar zxvf /tmp/solr-4.6.0.tgz
    sudo chown -R tomcat:tomcat solr-4.6.0
    

    在这里,我使用/ opt,但只要Tomcat可以访问它,您就可以在任何地方安装它。为了确保这一点,让Tomcat成为所有者,因此它可以在Solr文件夹中读写。

  2. 部署

    现在,让我们在Tomcat上部署Solr webapp。为此,我们将利用XML上下文配置文件,我们将使用它来部署和配置Solr。

    在Tomcat安装文件夹中,在conf / Catalina / localhost中创建一个新的XML上下文配置文件。该文件的基本名称将定​​义Solr上下文路径。

    我们首先需要定义$ {solr.home}。在这里,我们使用分发中提供的示例Solr配置。它位于/opt/solr-4.6.1/example/solr。

    为避免启动错误,我们需要在webapp类路径中添加一些jar,位于/opt/solr-4.6.1/example/lib/ext。但我们不想用Solr jar污染Tomcat的lib文件夹,所以我们只声明一个虚拟加载器。

    我们还需要正确配置Log4J。这里我们使用Solr分发在/opt/solr-4.6.1/example/resources中提供的Log4J配置文件,方法是在Solr类路径中添加文件夹。

    <?xml version="1.0" encoding="UTF-8"?>
    <Context docBase="/opt/solr-4.6.1/dist/solr-4.6.1.war">
      <Environment
        name="solr/home"
        type="java.lang.String"
        value="/opt/solr-4.6.1/example/solr"
        override="true" />
      <Loader
        className="org.apache.catalina.loader.VirtualWebappLoader"
        virtualClasspath="/opt/solr-4.6.1/example/lib/ext/*.jar;/opt/solr-4.6.1/example/resources/" />
    </Context>
    

    保存文件,等待Tomcat读取并部署战争。

  3. 那就是它! Solr正在运行。

答案 5 :(得分:0)

以下是安装了XAMPP的Windows Tony at Drupal提供的说明:

预赛

  • 给自己一杯好茶
  • 确保已安装Windows Java环境。目前它已达到第6版。
  • 我假设您使用XAMPP来运行Apache和MySQL以及最新版本的PHP5

安装Tomcat

  1. 如果您使用Tomcat安装XAMPP,请转到服务托盘,停止XAMPP服务并从XAMPP安装中删除Tomcal目录。然后再次重新启动XAMPP。原因是您希望能够从Windows中的“服务托盘”轻松配置Tomcat。如果Tomcat在XAMPP下运行,则它不会显示在服务托盘中。
  2. 在安装Tomcat之前,将文件c:\ windows \ microsoft.net \ framework \ v1.1.4322 \ msvcr71.dll复制到c:\ windows \ system32 \ msvcr71.dll如果你不这样做, Tomcat不会启动。
  3. 现在安装Tomcat 6.x.开始运行。如果Tomcat正在运行,您应该会在http://localhost:8080显示一个页面。
  4. 查看Tomcat的文件结构。这很简单。请注意名为webapps的目录。
  5. 现在喝一杯好茶。
  6. 如果您使用的是Linux,请检查:Apache Solr 4.6.0 installation