15

我一直在尝试在我的家用 PC(在 Tomcat 7 中)上设置 Solr 4.3,但它没有运行。我已经设置了 Tomcat 并部署了solr.war文件,该文件在 Tomcat 的 Tomcat Web 应用程序管理器屏幕中解包并显示,但它没有运行并且单击开始按钮没有做任何事情(因为它应该已经运行在第一位) .

这是我solr.xml在 Tomcat 中的上下文文件,它还提供了 solr.war 文件的路径以及我的 solr 核心所在的位置(这是默认的 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
4

6 回答 6

26

您需要按照此处的说明安装用于记录的 jar 。

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

  1. 将 jar 复制solr/example/lib/ext到容器的主 lib 目录中。这些罐子将设置SLF4Jlog4j. 正是这个 lib 目录是高度可变的。对于使用操作系统供应商提供的 Tomcat 软件包的 Debian 或 Ubuntu 服务器,这可能是/usr/share/tomcat6/lib/usr/share/tomcat7/lib.
  2. 将日志记录配置复制solr/example/resources/log4j.propertiesclasspath. 通常您可以使用与上述 jar 文件相同的位置。编辑首选日志目标的配置文件。
  3. 或者,如果您没有将 log4j.properties 放在类路径上,请设置java option -Dlog4j.configuration=file:///path/to/log4j.properties
于 2013-06-10T08:09:10.263 回答
5
  1. 下载最新的 solr-4.x.zip 文件。
  2. 在 C:\solr setup 之类的地方提取 zip 文件。
  3. 应安装 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\ 并将复制的战争文件重命名为一些有意义的名称,如 solrTest.Start Tomcat。如果已经运行,则重新启动 Tomcat。将创建与 war 文件 (solrTest) 同名的新文件夹。
  4. 停止 Tomcat。将 bin 和 collection1 文件夹从 C:\solr setup\solr-4.x\example\solr 复制到 C:\Program Files\Apache ...\Tomcat...\webapps\solrTest。
  5. 将所有 jar 从 C:\solr setup\solr-4.x\example\lib\ext 复制到 C:\Program Files\Apache...\Tomcat...\lib。SOLR 4.x 将使用这些 jar 进行日志记录。
  6. 在 C:\Program Files\Apache...\Tomcat...\conf\Catalina\localhost\ 中创建与 war 文件 (solrTest.xml) 同名的 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. 更新复制条目以在复制请求处理程序中设置 master 或 slave。
  11. 尝试访问“...localhost:portNumber/solrTest”。如果没有出现错误,则说明您已成功配置 SOLR 4.x。
于 2013-11-23T19:56:09.570 回答
3

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

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

其他一些实现说明:

  • 启动脚本可以从任何地方运行,并允许在命令行上传递 JVM 参数(就像码头一样,所以它更容易使用)
  • 启动脚本解决已知的 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 以便更容易使用 jetty 从开始示例中剪切粘贴。“示例”目录也仍然存在,因此您仍然可以根据需要运行基于码头的服务器。

于 2013-12-22T14:03:24.270 回答
2

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

于 2013-06-10T22:11:53.873 回答
2

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

  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。

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

    我们还需要正确配置 Log4J。这里我们使用 /opt/solr-4.6.1/example/resources 中 Solr 发行版中提供的 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 读取并部署战争。

而已!Solr 已启动并运行。

于 2014-06-16T11:34:50.740 回答
0

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

预赛

  • 给自己泡一杯好茶
  • 确保已安装 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. 现在喝杯好茶。

如果您使用的是 Linux,请检查:Apache Solr 4.6.0 安装

于 2015-05-28T14:29:46.370 回答