solr4.4以上版本安装及安装过程中出现的错误解决方法

本文详细介绍了如何在 Linux 环境下安装和配置 Solr 4.4.0 版本。包括 JDK 和 Tomcat 的安装,Solr 安装包的下载与解压,将 Solr WAR 包部署到 Tomcat 下,并解决在启动过程中遇到的日志 jar 包缺失的问题。同时,文章提供了正确的 solr/home 配置方法,以及启动 Tomcat 后遇到的 solrconfig.xml 文件缺失问题的解决步骤。最后,演示了如何通过 HTTP 地址访问 Solr 并创建库,以及在 solr.xml 文件中添加库配置的方法。

本文介绍的是Solr–4.4.0的安装

1.安装jdk环境(1.6及以上)及tomcat

2.下载官网solr的安装包solr-4.4.0.tgz并解压(此处以SOLR_DIR表示)

3.复制SOLR_DIR/dist/solr-4.4.0.war 到tomcat的webapps目录下(tomcat下部署项目的方式之一,这纯粹看个人喜好)并启动tomcat,此时查看tomcat的日志catalina.out 会发现报错如下

INFO: Reloading context [/solr-4.4.0]
Sep 24, 2013 9:59:38 AM org.apache.catalina.core.StandardContext stop
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/solr-4.4.0] has not been started
Sep 24, 2013 9:59:38 AM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Sep 24, 2013 9:59:38 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/solr-4.4.0] startup failed due to previous errors

停止tomcat并移除war包(个人习惯)。

出现以上错误的原因是因为solr的war包中不包含日志的jar包,需要自己手动添加。

复制SOLR_DIR/example/lib/ext中的jar包到tomcat的lib下,同时复制日志配置文件SOLR_DIR/example/resources中的log4j.properties到tomcat的lib下

同时此时配置solr的home目录,打开tomcat下webapps/solr-4.4.0/WEB-INF/web.xml文件搜索entry 找到如下

<!–
    <env-entry>
      <env-entry-name>solr/home</env-entry-name>
      <env-entry-value>/put/your/solr/home/here</env-entry-value>
      <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
–>

在windows操作系统可以配成如下:

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

 

并配置自己的solr/home,此处被注释,记得删除注释符。(此处以SOLR_HOME表示)

启动tomcat,此时查看tomcat的日志catalina.out 会发现报错如下

226  [main] INFO  org.apache.solr.core.ConfigSolr  – /root/solr/home/solr.xml does not exist, using default configuration
339  [main] INFO  org.apache.solr.core.CoreContainer  – New CoreContainer 2097953288
340  [main] INFO  org.apache.solr.core.CoreContainer  – Loading cores into CoreContainer [instanceDir=/root/solr/home/]
372  [main] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory  – Setting socketTimeout to: 0
372  [main] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory  – Setting urlScheme to: http://
373  [main] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory  – Setting connTimeout to: 0
373  [main] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory  – Setting maxConnectionsPerHost to: 20
373  [main] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory  – Setting corePoolSize to: 0
373  [main] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory  – Setting maximumPoolSize to: 2147483647
374  [main] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory  – Setting maxThreadIdleTime to: 5
374  [main] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory  – Setting sizeOfQueue to: -1
374  [main] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory  – Setting fairnessPolicy to: false
386  [main] INFO  org.apache.solr.client.solrj.impl.HttpClientUtil  – Creating new http client, config:maxConnectionsPerHost=20&maxConnections=10000&socketTimeout=0&connTimeout=0&retry=false
573  [main] INFO  org.apache.solr.logging.LogWatcher  – Registering Log Listener [Log4j (org.slf4j.impl.Log4jLoggerFactory)]
600  [coreLoadExecutor-3-thread-1] INFO  org.apache.solr.core.CoreContainer  – Creating SolrCore ‘collection1′ using instanceDir: /root/solr/home/collection1
601  [coreLoadExecutor-3-thread-1] INFO  org.apache.solr.core.SolrResourceLoader  – new SolrResourceLoader for directory: ‘/root/solr/home/collection1/’
610  [coreLoadExecutor-3-thread-1] ERROR org.apache.solr.core.CoreContainer  – Failed to load file /root/solr/home/collection1/solrconfig.xml
613  [coreLoadExecutor-3-thread-1] ERROR org.apache.solr.core.CoreContainer  – Unable to create core: collection1
org.apache.solr.common.SolrException: Could not load config for solrconfig.xml
        at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:592)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:657)
        at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:364)
        at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:356)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:679)
Caused by: java.io.IOException: Can’t find resource ‘solrconfig.xml’ in classpath or ‘/root/solr/home/collection1/conf/’, cwd=/opt/local/apache-tomcat-6.0.37
        at org.apache.solr.core.SolrResourceLoader.openResource(SolrResourceLoader.java:322)
        at org.apache.solr.core.SolrResourceLoader.openConfig(SolrResourceLoader.java:287)
        at org.apache.solr.core.Config.<init>(Config.java:116)
        at org.apache.solr.core.Config.<init>(Config.java:86)
        at org.apache.solr.core.SolrConfig.<init>(SolrConfig.java:120)
        at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:589)
        … 11 more
616  [coreLoadExecutor-3-thread-1] ERROR org.apache.solr.core.CoreContainer  – null:org.apache.solr.common.SolrException: Unable to create core: collection1
        at org.apache.solr.core.CoreContainer.recordAndThrow(CoreContainer.java:1150)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:666)
        at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:364)
        at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:356)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:679)
Caused by: org.apache.solr.common.SolrException: Could not load config for solrconfig.xml
        at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:592)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:657)
        … 10 more
Caused by: java.io.IOException: Can’t find resource ‘solrconfig.xml’ in classpath or ‘/root/solr/home/collection1/conf/’, cwd=/opt/local/apache-tomcat-6.0.37
        at org.apache.solr.core.SolrResourceLoader.openResource(SolrResourceLoader.java:322)
        at org.apache.solr.core.SolrResourceLoader.openConfig(SolrResourceLoader.java:287)
        at org.apache.solr.core.Config.<init>(Config.java:116)
        at org.apache.solr.core.Config.<init>(Config.java:86)
        at org.apache.solr.core.SolrConfig.<init>(SolrConfig.java:120)
        at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:589)
        … 11 more

从错误日志可以看出,缺少俩文件solr.xml及solrconfig.xml,这两个文件可以在SOLR_DIR/example/solr及SOLR_DIR/example/solr/collection1/conf找到。

复制solr.xml到SOLR_HOME下,复制solrconfig.xml到SOLR_HOME/collection1/conf下,重启tomcat,此时再查看日志,solr已正常启动

4.web查看http://localhost:8080/solr-4.4.0

现在可以重新启动Tomcat了,没有报错,通过这个地址进入Solr4.0页面:http://localhost:8080/solr-4.4.0 

如果进入以上界面说明成功了,没有成功的话页面会有ERROR提示。

如图:左侧core0,core1等是solr 4.0中的示例,core0和core1位于apache-solr-4.0.0\example\multicore所有文件都下拷贝到E:\SoleHome下,core0和core1可以理解为两个库,都是独立的,用来存放索引以及生成这些索引文件所需要的配置文件,solrtest是我测试建立的目录,如图:

 

没添加一个库都需要在solr.xml里面进行配置,这个比较简单

<solr persistent="false">
  <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
    <core name="core0" instanceDir="core0" />
    <core name="core1" instanceDir="core1" />
    <core name="collection1" instanceDir="collection1" />
    <core name="solrtest" instanceDir="solrtest"/>
  </cores>
</solr>

name="",是库的名字,instanceDir="",是目录


本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2013-10/91041.htm

 

 

 

Solr 的详细介绍请点这里
Solr 的下载地址请点这里

相关阅读:

Solr3.6.1 在Tomcat6下的环境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm

基于Tomcat的Solr3.5集群部署 http://www.linuxidc.com/Linux/2012-12/75297.htm

在Linux上使用Nginx为Solr集群做负载均衡 http://www.linuxidc.com/Linux/2012-12/75257.htm

Linux下安装使用Solr http://www.linuxidc.com/Linux/2012-10/72029.htm

Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm

Solr实现Low Level查询解析(QParser) http://www.linuxidc.com/Linux/2012-05/59755.htm

基于Solr 3.5搭建搜索服务器 http://www.linuxidc.com/Linux/2012-05/59743.htm

Solr 3.5开发应用教程 PDF高清版 http://www.linuxidc.com/Linux/2013-10/91048.htm

Solr 4.0 部署实例教程 http://www.linuxidc.com/Linux/2013-10/91041.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值