一、安装环境

图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. Objective-C( Category 分类,非正式协议,分类延展)

    分类: 主要是给原来类增加一些方法;不可以增加成员变量 Person (Person+eat) 非正式协议: 非正式协议就是类别,即凡是NSObject或其子类Foundation框架中的类增加的类别 ...

  2. APIO2015 酱油记

    Day 0 昨天CTSC才比完,当然是要浪啦! 于是浪了一天...午饭都没吃... 晚饭...貌似也没吃... 晚上的时候觉得这样子浪不太好,还是要认真一下,打开bzoj,弃疗了...还是浪吧... ...

  3. window.requestAnimationFrame

    今天小猪在看一个html5的demo时一直在找他的动画是怎么实现的,按照我的理解就应该是调用setInterval来循环调用动画函数来实现.但是在Demo中就是找不到这个函数.干着急的小猪只好一步一步 ...

  4. NGINX location 在配置中的优先级

    location表达式类型 ~ 表示执行一个正则匹配,区分大小写 ~* 表示执行一个正则匹配,不区分大小写 ^~ 表示普通字符匹配.使用前缀匹配.如果匹配成功,则不再匹配其他location. = 进 ...

  5. bzoj 2878: [Noi2012]迷失游乐园

    #include<iostream> #include<cstring> #include<cstdio> #define M 100005 #define ld ...

  6. CentOS6.4安装Hadoop2.0.5 alpha - Single Node Cluster

    1.安装JDK7 rpm到/usr/java/jdk1.7.0_40,并建立软链接/usr/java/default到/usr/java/jdk1.7.0_40 [root@server-308 ~] ...

  7. Objective-C学习笔记-第一天(2)

    Objective-C中的协议,相当于Java中的接口 参考:http://www.cnblogs.com/zzy0471/p/3894307.html 一个简单的协议遵循: PersonProtoc ...

  8. ios网络学习------4 UIWebView的加载本地数据的三种方式

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

  9. [蟒蛇菜谱] Python方便使用的级联进度信息

    class StepedProgress: '''方便显示进度的级联进度信息. ''' def __init__(self, stockPercent=[1], parentProgress=None ...

  10. USACO 08-Nov( 最小生成树)

    美国人出题拐弯抹角,倒是挺尊重动物的 10206301 2 52 3 52 4 123 4 172 5 153 5 64 5 12 Hint从牧场4起床, 然后按照 4, 5, 4, 2, 3, 2, ...