Solr+Tomcat安装配置及二次开发使用说明
1. Solr介绍
Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配置,而且附带了一个基于HTTP 的管理界面。可以使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。Solr的特性包括:
∙ 高级的全文搜索功能
∙ 专为高通量的网络流量进行的优化
∙ 基于开放接口(XML和HTTP)的标准
∙ 综合的HTML管理界面
∙ 可伸缩性-能够有效地复制到另外一个Solr搜索服务器
∙ 使用XML配置达到灵活性和适配性
∙ 可扩展的插件体系
2. Lucene 介绍
Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta(雅加达) 家族中的一个开源项目。也是目前最为流行的基于Java开源全文检索工具包。目前已经有很多应用程序的搜索功能是基于 Lucene ,比如Eclipse 帮助系统的搜索功能。Lucene能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。
3. Solr vs Lucene
Solr与Lucene 并不是竞争对立关系,恰恰相反Solr 依存于Lucene,因为Solr底层的核心技术是使用Lucene 来实现的,Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括 Solr: Solr是Lucene面向企业搜索应用的扩展。
Solr与Lucene架构图:
Solr使用Lucene并且扩展了它!
∙ 一个真正的拥有动态字段(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema)
∙ 对Lucene查询语言的强大扩展!
∙ 支持对结果进行动态的分组和过滤
∙ 高级的,可配置的文本分析
∙ 高度可配置和可扩展的缓存机制
∙ 性能优化
∙ 支持通过XML进行外部配置
∙ 拥有一个管理界面
∙ 可监控的日志
∙ 支持高速增量式更新(Fast incremental Updates)和快照发布(Snapshot Distribution)
4.Tomcat+Solr相结合配置
4.1 安装虚拟机
4.2下载Solr
到Solr下载地址Solr最新版本:/solr/。该文档中使用的版本是Solr4.4.0。
4.3Tomcat+Solr相结合
apache-solr-dataimportscheduler-1.0.jar (调度重建索引 jar包 )
lecode/files/apache-solr-dataimportscheduler-1.0.jar
准备:能运行 tomcat java环境 此次部署 采用 apache-tomcat-6.0.35
开始部署:
一 部署 solr4.4
1. 解压 solr4.4.0.zip
2. 将 solr-4.4.0\dist\solr-4.4.0.war拷贝到 apache-tomcat-6.0.35\webapps下,重命名为 solr;
3. 在tomcat的目录conf/Catalina/l下创建该文件,若Catalina等文件夹不存在则手动创建文件内容如下
<Context docBase="d:/tomcat/webapps/solr.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="d:/tomcat/solr" override="true" />
</Context>
docBase为solr的war文件,启动tomcat后会被解压到tomcat/webapps/solr下,Environment配置solr.home目录,从solr包中example文件夹下的solr配置文件拷贝过来既可。
4. 启动 tomcat,启动成功后停止 tomcat,并将 solr.war删除
5. 将 solr-server\solr-4.4.0\dist下的 jar拷贝到 apache-tomcat-6.0.35\webapps\solr\WEB-INF\lib下
6. 将 solr-server\solr-4.4.0\dist\solrj-lib下的 jar拷贝到 apache-tomcat-6.0.35\webapps\solr\WEB-INF\lib下
7. 将 solr-server\solr-4.4.0\example\resources\log4j.properties拷贝到 apache-tomcat-6.0.35\webapps\solr\WEB-INF\lib下
8. 新建 solrhome目录 将 solr-server\solr-4.4.0\example\multicore下所有文件夹拷贝至 solrhome,本次将 solrhome新建路径为 D:\solr-server\SolrHome。
9. 修改 apache-tomcat-6.0.35\webapps\solr\l文件
解注释以下内容:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:\solr-server\SolrHome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
log4j2自定义日志文件名</env-entry>
10. 修改tomcat conf下l文件配置,加入 URIEncoding="UTF-8"防止中文搜索乱码。在<Host>节点下添加项目配置:
<Context path="" docBase="D:\Tomcat\webapps\solr" debug="0"/>
启动tomcat,输入127.0.0.1:8080,不用输入/solr,既可访问项目
11. 访问搜索界面127.0.0.1:8080/browse失败,原因是l配置文件中指定的jar包路径不对,从examples中copy过来的l配置文件中指定jar文件如下。
<lib dir="../../dist/" regex="apache-solr-cell-\d.*\.jar" /> <lib dir="../../contrib/extraction/lib" regex=".*\.jar" /> <lib dir="../../dist/" regex="apache-solr-clustering-\d.*\.jar" /> <lib dir="../../contrib/clustering/lib/" regex=".*\.jar" /> <lib dir="../../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" /> <lib dir="../../contrib/dataimporthandler/lib/" regex=".*\.jar" /> <lib dir="../../dist/" regex="apache-solr-langid-\d.*\.jar" /> <lib dir="../../contrib/langid/lib/" regex=".*\.jar" /> <lib dir="../../dist/" regex="apache-solr-velocity-\d.*\.jar" /> <lib dir="../../contrib/velocity/lib" regex=".*\.jar" /> |
注意dir="../../contrib/extraction/lib"这个地址的相对位置是对于$SOLR_HOME/conf/来说的,而不是$SOLR_HOME/l。从解压的solr文件夹中中copycontrib和dist到webapps/solr/bin文件夹下,把上面dir属性值改为绝对路径,指向相应的dist和contrib文件夹
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论