我一直在尝试在家用电脑上设置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
答案 0 :(得分:26)
您需要按照here所述安装用于记录的jar。
将所有提到的文件复制到tomcat / lib目录中。并重新启动Tomcat。
- 将jar从
solr/example/lib/ext
复制到容器的主lib目录中。这些广告罐将设置为SLF4J
和log4j
。 确切地说这个lib目录是高度可变的。对于Debian或 使用OS供应商提供的Tomcat软件包的Ubuntu服务器, 这可能是/usr/share/tomcat6/lib
或。/usr/share/tomcat7/lib
solr/example/resources/log4j.properties
。- 将日志配置从
classpath
复制到该位置java option -Dlog4j.configuration=file:///path/to/log4j.properties
。通常,您可以使用与jar文件相同的位置 以上。编辑首选日志目标的配置文件。- 或者,如果您未在类路径上放置log4j.properties,请设置{{1}}
醇>
答案 1 :(得分:5)
答案 2 :(得分:3)
在Tomcat上开始使用Solr的最简单方法是使用HDS(Heliosearch Distribution for Solr), Tomcat/Solr distribution
它是Apache Solr的超集,包含一个额外的“服务器”目录,它是预先配置的(线程,日志记录,连接设置,消息大小等)基于Tomcat的Solr服务器。
其他一些实施说明:
开始:
$ 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,内容如下:
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文件夹中读写。
部署
现在,让我们在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读取并部署战争。
那就是它! Solr正在运行。
答案 5 :(得分:0)
以下是安装了XAMPP的Windows Tony at Drupal提供的说明:
如果您使用的是Linux,请检查:Apache Solr 4.6.0 installation。