windows下安装solr6.4.1

来源:互联网 发布:ubuntu分辨率800*600 编辑:程序博客网 时间:2024/05/17 22:15

来自百度百科:Solr简介
Solr是一个基于Lucene的Java搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。通过对 Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用 Solr 创建的索引。


了解solr后,先做一下具体的准备工作:jdk-8u111、apache-tomcat-8.0.39、solr6.4.1,jdk和tomcat怎么安装就不啰嗦了,直接网上搜索就行了。

这是solr的下载地址:http://archive.apache.org/dist/lucene/solr/6.4.1/,下载solr-6.4.1.zip就行

下面是具体的搭建步骤:

第一步:把solr-6.4.1.zip解压之后,找到solr-6.4.1/server/server-webapp/目录下的webapp文件夹,复制粘贴到tomcat下的webapps下;

第二步:把solr-6.4.1/server/lib/ext目录下的所有jar包、和solr-6.4.1/dist下的solr-dataimporthandler-6.4.1.jar、solr-dataimporthandler-extras-6.4.1.jar粘贴复制到tomcat下的solr项目的WEB-INF/lib目录下;

第三步:把server目录下的solr文件夹粘贴复制到其他目录,然后重命名为:solr-home,这是solr核心文件夹。

第四步:修改tomcat下的solr项目的WEB-INF/web.xml,这一步用来指定默认的solr/home。在web.xml开头附近找到:

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:/soft/apache-tomcat-8.0.39/solr-home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

然后取消注释,把<env-entry-value>填第三步solr-home文件夹的地址。

第五步:在tomcat下的solr项目的WEB-INF下新建classes目录,然后把solr-6.4.1/server/resources下的log4j.properties粘贴过去;

做完这五步就基本搭建完成了,可以访问http://localhost:8080/solr/index.html可以到solr的后台做一些配置工作。

下面说一下搭建过程中可能遇到的异常:

1,启动tomcat时如果报下面的错误:

严重: Exception starting filter SolrRequestFilter

java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4700)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5340)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.codahale.metrics.MetricSet
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)

... 20 more

请把solr-6.4.1/server/lib下的metrics-core-3.1.2.jar,metrics-ganglia-3.1.2.jar,metrics-graphite-3.1.2.jar,metrics-jetty9-3.1.2.jar,metrics-jvm-3.1.2.jar这几个jar包放到tomcat下的solr项目的WEB-INF/lib目录下。这个异常是缺少jar包,具体哪个不清楚,没有把metrics开头的jar包一个一个地测试,有耐心的同学可以找一下具体哪个jar包。


,2,访问http://localhost:8080/solr/index.html时如果报下面的错误:

HTTP Status 403 - Access to the requested resource has been denied

把tomcat下的solr项目的web.xml文件中
 <security-constraint> 
 <web-resource-collection> 
 <web-resource-name>Disable TRACE</web-resource-name> 
 <url-pattern>/</url-pattern> 
 <http-method>TRACE</http-method> 
</web-resource-collection> 
<auth-constraint/> 
</security-constraint> 
 <security-constraint> 
<web-resource-collection> 
 <web-resource-name>Enable everything but TRACE</web-resource-name> 
 <url-pattern>/</url-pattern> 
<http-method-omission>TRACE</http-method-omission> 
</web-resource-collection> 
 </security-constraint> 
这段注释掉。这段配置限制了对solr资源的访问,注释掉就可以访问了。

解决掉上面的异常后,重启tomcat,访问http://localhost:8080/solr/index.html,不出意外会进入如下图的页面