Solr(一)基于tomcat的solr环境搭建

Solr7.x 使用教程 基于tomcat启动Solr

Posted by Oumuv on November 25, 2018

环境要求

  • solr7.3
  • jdk8
  • tomcat8
  • windows10

填坑:从solr4之后jdk必须是8以上,solr5之后要用tomcat8以上否则会有坑

一、准备工作

    1、下载solr7:http://archive.apache.org/dist/lucene/solr/

         下载tomcat8:https://tomcat.apache.org/download-80.cgi

    2、建立一个文件夹,将tomcat和solr分别解压到里面

    solr内置jetty,启动很简单,只需要在bin中启动cmd,执行命令solr start即可。默认使用8983端口启动,浏览器访问http://localhost:8983/solr/index.html即可看到主页。(如果不使用tomcat的话后面的教程可以跳过)

二、开始搭建

    集成tomcat

    1、将D:\solr\solr-7.3.0\server\solr-webapp文件夹下的webapp复制到D:\solr\apache-tomcat-8.5.32\webapps下并改名为solr(名字无所谓主要用于区分)这一步是为了将solr的应用程序放入tomcat中

    2、完成上一步后启动tomcat,访问http://localhost:8080/solr/index.html(solr主页)会发现报错,查看tomcat的日志你会发现错误信息:java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet ,这是缺少jar包,下面是需要用到的jar包及对应的位置:

\solr-7.3.0\server\lib的.jar、\solr-7.3.0\server\lib\ext的.jar、\solr-7.3.0\dist里的solr-dataimporthandler-7.3.0.jar和solr-dataimporthandler-extras-7.3.0.jar,复制到\apache-tomcat-8.5.32\webapps\solr\WEB-INF\lib里

    3、配置log日志:

        \solr-7.3.0\server\resources的log4j.properties复制到\apache-tomcat-8.5.32\webapps\solr\WEB-INF\lib\classes里,如果没有classes文件夹则自建一个

修改log4j.properties里的solr.log=${solr.log.dir},将${solr.log.dir}改成自己定义的路径,如D:\solr\logs,否则启动tomcat时会爆出java.io.FileNotFoundException: \solr.log (拒绝访问。)

    4、配置solr的web.xml

        找到\apache-tomcat-8.5.32\webapps\solr\WEB-INF\web.xml,找到如下图这一段打开注释,并将/put/your/solr/home/here

        改为D:\\solr\\solrHome ,这一步的D:\solr\solrHome是配置solr的core核心的路径,solrHome需要自己建

然后在web.xml最底下将注释掉,如果不注释掉会有权限问题,访问solr主页会显示403错误。

    5、上一步配置的core核心路径(D:\solr\solrHome),将\solr-7.3.0\server\solr里的solr.xml和zoo.cfg复制到此路径,在此路径下新建一个文件夹名为collectionA(作为一个core核心)

然后将\solr-7.3.0\example\example-DIH\solr\solr路径下的conf和core.properties复制到此collectionA下

此操作是为了添加一个solr core核心(conlletionA)。

启动tomcat成功。访问主页http://localhost:8080/solr/index.html显示如下图

点击core admin 可以看到刚刚我们自己配置的core collectionA,到此环境搭建完成

希望可以帮助到有需要的人