如何在Tomcat本地运行Solr 4?

我一直试图在家用电脑上安装Solr 4.3(Tomcat 7),但是它不能运行。 我已经build立了Tomcat并部署了solr.war文件,这两个文件在Tomcat的Tomcat Web Apps Manager屏幕上解包并显示,但是它没有运行,点击开始button也没有做任何事情(因为它应该已经在第一名)。

这里是我在Tomcat中的solr.xml上下文文件,它也提供了solr.war文件的path以及我的solr Cores所在的位置(这是默认的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 

您需要按照此处所述安装用于记录的罐子。

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

  1. solr/example/lib/ext的jar复制到你的容器的主lib目录中。 这些罐子将建立SLF4Jlog4j 。 这个lib目录的确切位置是高度可变的。 对于使用OS供应商提供的Tomcat软件包的Debian或Ubuntu服务器,这可能是/usr/share/tomcat6/lib/usr/share/tomcat7/lib
  2. solr/example/resources/log4j.properties的日志配置复制到classpath某个位置。 通常你可以使用与上面的jar文件相同的位置。 编辑首选日志目标的配置文件。
  3. (可选)如果没有在类路径上放置log4j.properties,请设置java option -Dlog4j.configuration=file:///path/to/log4j.properties
  1. 下载最新的solr-4.x.zip文件。
  2. 将C:\ solr安装程序解压缩到某个位置。
  3. 应安装Apache Tomcat(大于5的版本)和Java 6或更高版本。 将solr-4.x.war文件从“C:\ solr setup \ solr-4.3.0 \ dist”复制到C:\ Program Files \ Apache … \ Tomcat中的“Apache Tomcat”webapps文件夹中\ webapps \并将复制的war文件重命名为solrTest.Start Tomcat等有意义的名称。 如果已经运行,然后重新启动Tomcat。 与war文件(solrTest)同名的新文件夹将被创建。
  4. 停止雄猫。 将bin和collection1文件夹从C:\ solr setup \ solr-4.x \ example \ solr复制到C:\ Program Files \ Apache … \ Tomcat … \ webapps \ solrTest。
  5. 将C:\ solr setup \ solr-4.x \ example \ lib \ ext中的所有jar复制到C:\ Program Files \ Apache … \ Tomcat … \ lib中。 SOLR 4.x将使用这些罐子进行记录。
  6. 在C:\ Program Files \ Apache … \ Tomcat … \ conf \ Catalina \ localhost \中创建xml文件,其名称与war文件(solrTest.xml)的名称相同,如下所示。 Tomcat寻找这个XML文件来获得应用程序的开始。
  7. 更新C:\ Program Files \ Apache … \ Tomcat … \ webapps \ solrTest \ collection1 \ conf \ schema.xml并添加必填字段并进行更新。
  8. 如果不需要,删除复制字段。 复制字段的使用在同一个文件中可用。
  9. 更新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标签在文件中可用。 不需要添加你自己的。
  10. 更新复制条目以在复制请求处理程序中设置主或从属。
  11. 尝试访问“… localhost:portNumber / solrTest”。 如果没有错误,那么您已经成功配置了SOLR 4.x.

在Tomcat上开始使用Solr最简单的方法是使用HDS(Heliosearch Distribution for Solr),一个Tomcat / Solr发行版

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

其他一些实现说明:

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

开始:

 $ 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,以便从使用jetty的开始示例中更容易地剪切n-paste。 “example”目录仍然存在,所以你仍然可以运行基于码头的服务器。

检查由Tomcat创建的localhost_yyyy_mm_dd.log日志。 它通常应该告诉你这个问题的原因。 全堆栈跟踪可能不会显示在控制台中…

我在做同样的事情时遇到了一些问题,官方文档对此没有什么帮助。 我写了一篇关于它的博客文章 ,内容如下:

  1. Solr安装

    在磁盘上的某处下载并解压最新版本的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。

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

    我们还需要正确配置Log4J。 在这里,我们使用Solr发行版中提供的Log4J配置文件/opt/solr-4.6.1/example/resources,在Solr classpath中添加文件夹。

     <?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阅读并部署战争。

而已! Solr正在运行。

这里是托尼在安装了XAMPP的Drupal for Windows中提供的指令:

预赛

  • 让自己一杯好茶
  • 确保你已经安装了Windows Java环境。 目前版本为6。
  • 我假设你使用XAMPP来运行Apache和MySQL以及最新版本的PHP5

安装Tomcat

  1. 如果您使用Tomcat安装了XAMPP,请转至您的服务托盘,停止XAMPP服务并从XAMPP安装中删除Tomcal目录。 然后重新启动您的XAMPP。 原因是您希望能够从Windows中的Services Tray轻松配置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. 现在有一杯好茶。

如果您在Linux上,请检查: Apache Solr 4.6.0安装 。