Apache Solr 介绍

Apache Solr 介绍html

 Solr 是什么?

  Solr 是一个开源的企业级搜索服务器,底层使用易于扩展和修改的Java 来实现。服务器通讯使用标准的HTTP 和XML,因此若是使用Solr 了解Java 技术会有用却不是必须的要求。java

Solr 主要特性有:强大的全文检索功能,高亮显示检索结果,动态集群,数据库接口和电子文档(Word ,PDF 等)的处理。并且Solr 具备高度的可扩展,支持分布搜索和索引的复制。web

Lucene 是什么?

  Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。shell

  目前已经有不少应用程序的搜索功能是基于 Lucene ,好比 Eclipse 帮助系统的搜索功能。Lucene 可以为文本类型的数据创建索引,因此你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。数据库

Solr VS Lucene

  Solr 与Lucene 并非竞争对立关系,偏偏相反Solr 依存于Lucene ,由于Solr 底层的核心技术是使用Apache Lucene 来实现的,简单的说Solr 是Lucene 的服务器化。须要注意的是Solr 并非简单的对Lucene 进行封装,它所提供的大部分功能都区别于Lucene 。apache

安装搭建Solr

安装 Java 虚拟机

  Solr 必须运行在Java1.5 或更高版本的Java 虚拟机中,运行标准Solr 服务只须要安装JRE 便可,但若是须要扩展功能或编译源码则须要下载JDK 来完成。能够经过下面的地址下载所需JDK 或JRE :api

安装中间件

  Solr 能够运行在任何Java 中间件中,下面将以开源Apache Tomcat 为例讲解Solr 的安装、配置与基本使用。本文使用Tomcat5.5 解压版进行演示,可在下面地址下载最新版本http://tomcat.apache.org/download-55.cgitomcat

安装Apache Solr

下载最新的Solr

  本文发布时Solr1.4 为最新的版本,下文介绍内容均针对该版本,如与Solr 最新版本有出入请以官方网站内容为准。Solr官方网站下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/bash

Solr 程序包 的目录结构

  • build :在solr 构建过程当中放置已编译文件的目录。
  • client :包含了一些特定语言调用Solr 的API 客户端程序,目前只有Ruby 可供选择,Java 客户端叫SolrJ 在src/solrj 中能够找到。
  • dist :存放Solr 构建完成的JAR 文件、WAR 文件和Solr 依赖的JAR 文件。
  • example :是一个安装好的Jetty 中间件,其中包括一些样本数据和Solr 的配置信息。
    • example/etc :Jetty 的配置文件。
    • example/multicore :当安装Slor multicore 时,用来放置多个Solr 主目录。
    • example/solr :默认安装时一个Solr 的主目录。
    • example/webapps :Solr 的WAR 文件部署在这里。
  • src :Solr 相关源码。
    • src/java :Slor 的Java 源码。
    • src/scripts :一些在大型产品发布时一些有用的Unix bash shell 脚本。
    • src/solrj :Solr 的Java 客户端。
    • src/test :Solr 的测试源码和测试文件。
    • src/webapp :Solr web 管理界面。管理界面的Jsp 文件都放在web/admin/ 下面,能够根据你的须要修改这些文件。

  Solr 的源码没有放在同一个目录下,src/java 存放大多数文件,src/common 是服务器端与客户端公用的代码,src/test 放置solr 的测试程序,serlvet 的代码放在src/webapp/src 中。服务器

Solr 主目录结构

一个运行的Solr 服务其主目录包含了Solr 的配置文件和数据(Lucene 的索引文件)

Solr 的主目录展开后为以下结构:

  • bin :建议将集群复制脚本放在这个目录下。
  • conf :放置配置文件。
    • conf/schema.xml :创建索引的schema 包含了字段类型定义和其相关的分析器。
    • conf/solrconfig.xml :这个是Solr 主要的配置文件。
    • conf/xslt :包含了不少xslt 文件,这些文件能将Solr 的XML 的查询结果转换为特定的格式,好比:Atom/RSS。
  • data :放置Lucene 产生的索引数据。
  • lib :放置可选的JAR 文件好比对Slor 扩展的插件,这些JAR 文件将会在Solr 启动时加载。

发布运行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 管理控制台界面

使用Java 接口访问Solr 服务

  SolrJ 是Solr 服务器的一个Java 接口,使用该接口不再同为虑客户端与服务器端交互时格式解析和转换的问题烦恼了,取而代之的是用你熟悉的对象来进行相关的操做,并且随着Solr 的不断升级SolrJ 也会一样提供这些新加入的功能。

SolrJ (Solr1.4 )依赖的Jar 包

  • commons-codec-1.3.jar
  • commons-fileupload-1.2.1.jar
  • commons-httpclient-3.1.jar
  • commons-logging-1.0.4.jar
  • commons-io-1.4.jar
  • geronimo-stax-api_1.0_spec-1.0.1.jar
  • solr-solrj-1.4.0.jar
  • wstx-asl-3.2.7.jar
  • stax-api-1.0.1.jar
  • slf4j-api-1.5.5.jar
  • slf4j-simple-1.5.5.jar
相关文章
相关标签/搜索