一、安装环境

图1-1 Tomcat和Solr的版本

我本机目前使用的Java版本为JDK 1.8,因为Solr 4.9要求Java版本为1.7+,请注意。

二、Solr部署到Tomcat流程

图1-2 Tomcat安装目录

1、如图1-2所示,为Tomcat的解压目录;

图1-3 Tomcat首页

2、在目录E:\apache-tomcat-8.0.9\bin中,找到startup.bat文件,双击该文件,启动Tomcat服务器,等待几秒钟后,在浏览器中输入http://localhost:8080/,如果服务器启动正常的话,则会出现如图1-3所示的界面;

3、在E:\apache-tomcat-8.0.9\conf\server.xml中,找到<Connector>标签,在该标签尾端添加URIEncoding="UTF-8",目的为解决中文搜索乱码,如下代码所示:

<Connector port="8080" protocol="HTTP/1.1"


connectionTimeout="20000"

redirectPort

="8443" URIEncoding="UTF-8"/>

图1-4 solr-4.9.1.war复制粘贴到当前目录,改名为solr.war

图1-5 Tomcat的webapps目录

4、将目录E:\solr-4.9.1\dist中的solr.war文件,复制到E:\apache-tomcat-8.0.9\webapps中,因为我们之前已经启动的Tomcat服务器,所以solr.war会自动解压出solr文件夹,如上图1-5所示;

图1-6 关键文件复制

5、关闭Tomcat服务器(也就是关闭startup.bat启动的那个命令行界面),E:\apache-tomcat-8.0.9\webapps目录下新建文件夹solr_home,然后将E:\solr-4.9.1\example\solr中的文件夹collection1和solr.xml复制到E:\apache-tomcat-8.0.9\webapps\solr_home目录中;

图1-7 配置文件修改solr_home

6、打开文件E:\apache-tomcat-8.0.9\webapps\solr\WEB-INF\web.xml,找到<env-entry>标签,修改代码部分如上图1-7所示;

图1-8 static firstSearcher warming in solrconfig.xml ---> *.*

7、打开E:\apache-tomcat-8.0.9\webapps\solr_home\collection1\conf\solrconfig.xml,将<listener event="firstSearcher" class="solr.QuerySenderListener">标签下内容按图1-8修改;

图1-9 关键目录的复制

8、将E:\solr-4.9.1中的contrib文件夹和dist文件夹复制到E:\apache-tomcat-8.0.9中;

图1-10 配置Solr日志模块

9、将E:\solr-4.9.1\example\lib\ext下的5个jar包复制到E:\apache-tomcat-8.0.9\webapps\solr\WEB-INF\lib中;

图1-11 配置日志输出路径到Tomcat的logs文件夹

10、在E:\apache-tomcat-8.0.9\webapps\solr\WEB-INF文件夹中新建classes文件夹,复制E:\solr-4.9.1\example\resources\log4j.properties文件到classes文件夹中,修改log4j.properties文件,将“log4j.appender.file.File”的值修改为“../logs/solr.log”;

图1-12 Solr在Tomcat中运行成功

11、删除E:\apache-tomcat-8.0.9\webapps文件夹下的solr.war文件,重启Tomcat,在浏览器中输入http://localhost:8080/solr,出现上图1-12所示界面,则表明Solr在Tomcat中已经配置成功;

三、本章总结

通过上一篇文章《Lucene/Solr搜索引擎开发系列 - 第1章 Solr安装与部署(Jetty篇)》,我们知道,Jetty服务器是Solr的默认服务器,只需要将Solr解压缩,启动Jetty服务器,在浏览器中输入http://localhost:8983/solr/就可以运行Solr后台。

为何我们要如此费劲的将Solr配置到Tomcat中呢?原因有以下几点:

1、经过多年的发展,一般企业都使用Tomcat作为开发和部署环境;

2、程序员们对Tomcat的熟悉度,比Jetty要高很多,当Tomcat出现问题,也容易解决;

3、大部分Java Web开发视频,都是基于Tomcat来进行开发讲解,传播范围广;

转载须知:

请尊重本人知识产权和劳动成果,本文可自由转载,请注明出处:
博客网址:http://www.cnblogs.com/zs8861/

联系邮箱:117711668@qq.com

欢迎交流!

Lucene/Solr搜索引擎开发笔记 - 第2章 Solr安装与部署(Tomcat篇)的更多相关文章

  1. Lucene/Solr搜索引擎开发笔记 - 第1章 Solr安装与部署(Jetty篇)

    一.为何开博客写<Lucene/Solr搜索引擎开发笔记> 本人毕业于2011年,2011-2014的三年时间里,在深圳前50强企业工作,从事工业控制领域的机器视觉方向,主要使用语言为C/ ...

  2. Lucene/Solr搜索引擎开发笔记 - 写作方向调整

    今天突然想到一个问题,觉得直接从Solr开始写,如果没有Lucene知识背景的话,看后续的章节还是比较吃力的,所以从下一篇博文开始,我可能会从Lucene开始写作,只要有Java的基础,搞定Lucen ...

  3. Solr In Action 笔记(1) 之 Key Solr Concepts

    Solr In Action 笔记(1) 之 Key Solr Concepts 题记:看了下<Solr In Action>还是收益良多的,只是奈何没有中文版,只能查看英语原版有点类,第 ...

  4. solr学习(笔记) windows10+jdk1.8+tomcat8环境部署

    一:准备环境 1.1 »tomcat8.5下载地址:https://tomcat.apache.org/download-80.cgi 1.2 solr各版本下载地址:http://archive.a ...

  5. Android开发笔记之《Window下安装Ubuntu双系统,Grub无法显示Window选项》

    解决方法是: 在terminal里面输入: sudo update-grub 会找到windows的grub 重启电脑就可以了.

  6. 吴裕雄--天生自然Django框架开发笔记:Django Nginx+uwsgi 安装配置

    Django Nginx+uwsgi 安装配置 使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,需要一个可以稳定而持续的服务器,比如 ...

  7. Nutch+Lucene搜索引擎开发实践

    网络拓扑 图 1 网络拓扑图 安装Java JDK 首先查看系统是否已经安装了其它版本号的JDK,假设有,先要把其它版本号的JDK卸载. 用root用户登录系统. # rpm-qa|grep gcj ...

  8. 《Clojure编程》笔记 第4章 多线程和并发

    目录 背景简述 第4章 多线程和并发 4.0 我的问题 4.1 术语 4.1.1 一个必须要先确定的思考基础 4.2 计算在时间和空间内的转换 4.2.1 delay 4.2.2 future 4.2 ...

  9. 《Clojure编程》笔记 第2章 函数式编程

    目录 背景简述 第2章 函数式编程 背景简述 本人是一个自学一年Java的小菜鸡,理论上跟大多数新手的水平差不多,但我入职的新公司是要求转Clojure语言的.坊间传闻:通常情况下,最好是有一定Jav ...

随机推荐

  1. canvas初体验之加载图片

    上一篇的介绍主要是画一些基本的图案,这一篇主要是加载图案. canvas加载图片主要分为两个步骤: 1.获取图片资源. 2.将图片资源画到画布上. 1.1获取图片资源,canvasAPI为我们提供了多 ...

  2. 如何有效使用Project(1)——编制进度计划、保存基准

    1.前言: 软件产品的研发.升级.定制等,一般都是以项目的形式进行,此时项目进度计划以及资源使用情况就变成了项目经理关注的重点.如何让项目计划有效可控,及时暴露问题?如何查看资源的负荷情况,看资源分配 ...

  3. 使用ajax异步提交表单数据(史上最完整的版本)

    额 为啥用这个 不用form呢,因为这个效率高,而且在浏览器中运行程序的时候如果出现bug的话,页面不会显示显示错误信息,提高了用户的体验度. 那么,就来看看把,先给数据库表截个图哈 然后写项目被 我 ...

  4. Android layout_weight的用法

    android:layout_weight是指LinearLayout先给里面的控件分配完大小之后剩余空间的权重. 下面通过举例说明: <LinearLayout xmlns:android=& ...

  5. 10个优秀的JavaScript Web UI库/框架推荐

    在进行Web开发时,并非所有的库都适合你的项目,但你仍需要收藏一些Web UI设计相关的库或框架,以在你需要的时候,加快你的开发效率. 本文为你带来10款非常优秀的基于JavaScript的Web U ...

  6. Oracle数据库高效sql语句的整理

    业务需求说明:由于之前公司后台APP端有一个document表,该表中包含了所有的信息,新的需求就是通过该表创建出一个新的用户表(usertable)和一个档案表(document,该表只保留原doc ...

  7. JDBC中的ResultSet

    ResultSet:结果集.存放数据库中的数据,可以将它想象成一张数据表,通过Statement对象中的executeQuery()方法获得 import com.mysql.jdbc.Stateme ...

  8. (转)深入理解JavaScript 模块模式

    深入理解JavaScript 模块模式 (原文)http://www.cnblogs.com/starweb/archive/2013/02/17/2914023.html 英文:http://www ...

  9. android技巧(四)数据库跨版本升级写法

    当项目中接手的需求需要在就前数据库数据表做出修改时,不得不面对数据库表结构的更新问题.一般的sqlite数据库更新修改数据库版本号时都会自动调用SqliteOptenHelper及其子类中的onUpg ...

  10. jQuery 中 offset()方法与用position()的区别

    jq中offset().left和offset().top获取的是相对于整个文档左上角的偏移. 而用$(selector).position().left和.top 取到的则是相对于selector父 ...