本文介绍的是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