Windows下搭建Solr5.5搜索服务

2016-03-21 Eric Wang 更多博文 » 博客 » GitHub »

Solr

原文链接 http://codepub.cn/2016/03/21/Windows-build-Solr5-5-search-services/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


机器环境

Windows:Win7 64 bit Java:java version "1.8.0_45";Java HotSpot(TM) 64-Bit Server VM Solr:5.5 Lucene:5.5 Tomcat:8.0.32

Lucene和Solr下载地址:http://lucene.apache.org/ Windows选择下载zip压缩包,Linux选择下载tgz压缩包 Tomcat下载地址:http://tomcat.apache.org/ ,选择Binary Distributions下的Core中的64-bit Windows zip (pgp, md5, sha1)下载之后文件名称是:apache-tomcat-8.0.32-windows-x64

Windows下启动Tomcat并添加服务

配置环境变量

注意JDKTomcat的目录中最好别有中文,首先在系统环境变量中配置JAVA_HOME,值是C:/Program Files/Java/jdk1.8.0_45,然后在Path中添加;%JAVA_HOME%/bin

添加环境变量CATALINA_HOME值是D:/apache-tomcat-8.0.32,然后点击 tomcatbin下的startup.bat就应该可以启动tomcat了。

添加Tomcat到Windows服务

如果想把tomcat添加到Windows服务中,需要打开cmd运行Tomcatbin目录下的service.bat脚本,安装命令如下,其中tomcat8是自己起的服务名称,当然也可以使用其它名称

D:\apache-tomcat-8.0.32>cd bin D:\apache-tomcat-8.0.32\bin>service.bat install tomcat8 Installing the service 'tomcat8' ... Using CATALINA_HOME: "D:\apache-tomcat-8.0.32" Using CATALINA_BASE: "D:\apache-tomcat-8.0.32" Using JAVA_HOME: "C:\Program Files\Java\jdk1.8.0_45" Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_45\jre" Using JVM: "C:\Program Files\Java\jdk1.8.0_45\jre\bin\server\jvm.dl l" The service 'tomcat8' has been installed.

卸载服务命令如下

D:\apache-tomcat-8.0.32\bin>service.bat remove tomcat8 Removing the service 'tomcat8' ... Using CATALINA_BASE: "D:\apache-tomcat-8.0.32" The service 'tomcat8' has been removed

配置Tomcat管理员

Tomcat启动之后,可以在浏览器中输入http://localhost:8080/ 查看是否配置成功,如果出现Tomcat主界面,点击Manager App,提示权限不足,此时需要在D:/apache-tomcat-8.0.32/conf/tomcat-users.xml文件中添加如下内容

<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>

重启Tomcat,打开浏览器点击Manager App会弹出登录框,使用配置的用户名和密码登录即可。

Tomcat启动Solr

  1. 解压从官网下载的solr-5.5.0.zip压缩包,解压到D:/solr-5.5.0
  2. 复制solr-5.5.0/server/solr-webapp/webapptomcat下的webapps目录下,改名为solr
  3. solr-5.5.0/server/lib/ext/目录下的所有jar包复制到tomcat/webapps/solr/WEB-INF/lib/
  4. solr-5.5.0/server/solr目录复制到D:/apache-tomcat-8.0.32/bin目录下,这个就是传说中的solr/home(存放检索数据)
  5. 设置solr/home:编辑D:/apache-tomcat-8.0.32/webapps/solr/WEB-INF/web.xml文件,以下部分是注释的,打开该注释,并修改env-entry-valuesolr在启动的时候会去这个根目录下加载配置信息。 xml <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>D:/apache-tomcat-8.0.32/bin/solr</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
  6. solr-5.5.0/server/resources下的log4j.properties文件复制到tomcat/webapps/solr/WEB-INF/classes目录下,如果该目录不存在则新建。
  7. solr-5.5.0/dist目录下的solr-dataimporthandler-5.5.0.jarsolr-dataimporthandler-extras-5.5.0.jar复制到tomcat/webapps/solr/WEB-INF/lib/下,这个是为了以后导入数据库表数据。 配置完成之后,Solr环境搭建完毕,重启Tomcat,在浏览器中输入http://localhost:8080/solr/index.html#/ 就可以看到Solr的控制台了
  8. tomcat/solrhome/目录下创建core(自定义),在其目录下创建data文件夹,并将D:/apache-tomcat-8.0.32/bin/solr/configsets/basic_configs/目录下的conf文件夹复制到core下。然后在solr控制台点击Add Core即可完成创建。

Jetty启动Solr

Solr自带Jetty服务器,并且提供了可运行的jar包,该jar包存在于D:/solr-5.5.0/server目录中,但是不能直接双击该jar包运行,需要在命令行中进行启动。打开cmd命令行,按照网上提示,输入启动命令

d:\solr-5.5.0\server>java -jar start.jar WARNING: Nothing to start, exiting ... Usage: java -jar start.jar [options] [properties] [configs] java -jar start.jar --help # for more information

根据提示信息,该命令并不能启动jar包,原因是在新版的Solr中并不能以这种方式启动,具体细节可以参见Solr Quick Start以及StackOverflow上面的问答“Nothing to start” when trying to start Apache Solr,根据以上信息,我们采用如下方式启动

d:\solr-5.5.0\bin>solr start -e cloud -noprompt Welcome to the SolrCloud example! Starting up 2 Solr nodes for your example SolrCloud cluster. Creating Solr home directory d:\solr-5.5.0\example\cloud\node1\solr Cloning d:\solr-5.5.0\example\cloud\node1 into d:\solr-5.5.0\example\cloud\node2 Starting up Solr on port 8983 using command: d:\solr-5.5.0\bin\solr.cmd start -cloud -p 8983 -s "d:\solr-5.5.0\example\cloud\ node1\solr" Waiting up to 30 to see Solr running on port 8983 Starting up Solr on port 7574 using command: d:\solr-5.5.0\bin\solr.cmd start -cloud -p 7574 -s "d:\solr-5.5.0\example\cloud\ node2\solr" -z localhost:9983 Started Solr server on port 8983. Happy searching! Waiting up to 30 to see Solr running on port 7574 Started Solr server on port 7574. Happy searching! Connecting to ZooKeeper at localhost:9983 ... Uploading d:\solr-5.5.0\server\solr\configsets\data_driven_schema_configs\conf f or config gettingstarted to ZooKeeper at localhost:9983 Creating new collection 'gettingstarted' using command: http://localhost:8983/solr/admin/collections?action=CREATE&name=gettingstarted&n umShards=2&replicationFactor=2&maxShardsPerNode=2&collection.configName=gettings tarted { "responseHeader":{ "status":0, "QTime":6080}, "success":{"":{ "responseHeader":{ "status":0, "QTime":5576}, "core":"gettingstarted_shard2_replica2"}}} Enabling auto soft-commits with maxTime 3 secs using the Config API POSTing request to Config API: http://localhost:8983/solr/gettingstarted/config {"set-property":{"updateHandler.autoSoftCommit.maxTime":"3000"}} Successfully set-property updateHandler.autoSoftCommit.maxTime to 3000 SolrCloud example running, please visit: http://localhost:8983/solr

成功启动之后,打开浏览器,访问http://localhost:8983/solr 即可看到Solr的控制台界面。

如果不想使用默认的端口8983,那么使用如下命令通过-p参数指定端口号同样可以启动Solr Server,访问http://localhost:8080/solr/index.html#/ 就可以看到主控界面了

D:\solr-5.5.0\bin>solr.cmd start -cloud -p 8080 -s "D:\solr-5.5.0\example\cloud\
node1\solr"
Backing up D:\solr-5.5.0\example\cloud\node1\solr\..\logs\solr.log
移动了         1 个文件。
Backing up D:\solr-5.5.0\example\cloud\node1\solr\..\logs\solr_gc.log
移动了         1 个文件。
Waiting up to 30 to see Solr running on port 8080
Started Solr server on port 8080. Happy searching!

或者直接修改jetty的配置文件,修改D:/solr-5.5.0/server/etc目录下jetty-http.xml中的8983改为自己希望的端口号即可。

参考文献 [1] http://blog.csdn.net/luenxin/article/details/50838895