Apache Solr 介绍html
Solr 是一个开源的企业级搜索服务器,底层使用易于扩展和修改的Java 来实现。服务器通讯使用标准的HTTP 和XML,因此若是使用Solr 了解Java 技术会有用却不是必须的要求。java
Solr 主要特性有:强大的全文检索功能,高亮显示检索结果,动态集群,数据库接口和电子文档(Word ,PDF 等)的处理。并且Solr 具备高度的可扩展,支持分布搜索和索引的复制。web
Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。shell
目前已经有不少应用程序的搜索功能是基于 Lucene ,好比 Eclipse 帮助系统的搜索功能。Lucene 可以为文本类型的数据创建索引,因此你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。数据库
Solr 与Lucene 并非竞争对立关系,偏偏相反Solr 依存于Lucene ,由于Solr 底层的核心技术是使用Apache Lucene 来实现的,简单的说Solr 是Lucene 的服务器化。须要注意的是Solr 并非简单的对Lucene 进行封装,它所提供的大部分功能都区别于Lucene 。apache
Solr 必须运行在Java1.5 或更高版本的Java 虚拟机中,运行标准Solr 服务只须要安装JRE 便可,但若是须要扩展功能或编译源码则须要下载JDK 来完成。能够经过下面的地址下载所需JDK 或JRE :api
Solr 能够运行在任何Java 中间件中,下面将以开源Apache Tomcat 为例讲解Solr 的安装、配置与基本使用。本文使用Tomcat5.5 解压版进行演示,可在下面地址下载最新版本http://tomcat.apache.org/download-55.cgitomcat
本文发布时Solr1.4 为最新的版本,下文介绍内容均针对该版本,如与Solr 最新版本有出入请以官方网站内容为准。Solr官方网站下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/bash
Solr 的源码没有放在同一个目录下,src/java 存放大多数文件,src/common 是服务器端与客户端公用的代码,src/test 放置solr 的测试程序,serlvet 的代码放在src/webapp/src 中。服务器
一个运行的Solr 服务其主目录包含了Solr 的配置文件和数据(Lucene 的索引文件)
Solr 的主目录展开后为以下结构:
将apache-solr-1.4.0/dist/apache-solr-1.4.0.war 从安装包中解压到<tomcat home>/webapps 下。WAR 是一个完整的web 应用程序,包括了Solr 的Jar 文件和全部运行Solr 所依赖的Jar 文件,Jsp 和不少的配置文件与资源文件,这里须要注意的是:WAR 文件中不包括Solr 主目录,所以在启动tomcat 以前咱们要先指定Solr 的主目录。
将安装程序中的apache-solr-1.4.0/example/solr 文件夹解压到<tomcat homt>/ 下,而后在<tomcat home>/bin/catalina.bat 第一行添加以下内容:
set JAVA_OPTS=%JAVA_OPTS% -Dsolr.solr.home=<tomcat home>/solr
注:Windows 之外操做系统需修改 catalina.sh 文件。
启动tomcat ,apache-solr-1.4.0.war 自动发布为web 应用。
点击连接访问Solr 控制台界面,http://localhost:8080/apache-solr-1.4.0/ ,显示以下界面表示启动成功。
图 1 Solr 欢迎界面
图 2 管理控制台界面
SolrJ 是Solr 服务器的一个Java 接口,使用该接口不再同为虑客户端与服务器端交互时格式解析和转换的问题烦恼了,取而代之的是用你熟悉的对象来进行相关的操做,并且随着Solr 的不断升级SolrJ 也会一样提供这些新加入的功能。