solr使用手册 下载本文

Solr全文检索服务

一、 企业站内搜索技术选型 ?

在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度要快、搜索结果按相关度排序、搜索内容格式不固定等,这里就需要使用全文检索技术实现搜索功能。

1. 使用Lucene实现?什么是Lucene ?

? Lucene是一个基于Java的全文信息检索工具包,它不是一个完整

的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta(雅加达) 家族中的一个开源项目。也是目前最为流行的基于Java开源全文检索工具包。目前已经有很多应用程序的搜索功能是基于 Lucene ,比如Eclipse 帮助系统的搜索功能。Lucene能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索

? 单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索引维护、索引 性能优化、搜索性能优化等,因此不建议采用。

2. 使用Google或Baidu接口?

? 通过第三方搜索引擎提供的接口实现站内搜索,这样和第三方引擎系统依

赖紧密,不方便扩展,不建议采用。

3. 使用Solr实现? Solr是什么?

? Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于

Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

? Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr

不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

? 基于Solr实现站内搜索扩展性较好并且可以减少程序员的工作量,因为

Solr提供了较为完备的搜索引擎解决方案,因此在门户、论坛等系统中常用此方案。

? Solr的特点:

1.基于标准的开放接口:Solr搜索服务器支持通过XML、JSON和HTTP查询和获取结果。

2.易管理:Solr可以通过HTML页面管理,Solr配置通过XML完成。 3.可伸缩性:能够有效地复制到另外一个Solr搜索服务器。

4.灵活的插件体系:新功能能够以插件的形式方便的添加到Solr服务器上。

5.强大的数据导入功能:数据库和其他结构化数据源现在都可以导入、映射和转化。

? Solr 与Lucene的架构图

? Solr与 Lucene的区别

1. Solr与Lucene 并不是竞争对立关系,恰恰相反Solr 依存于Lucene,因为Solr

底层的核心技术是使用Lucene 来实现的。

2. Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本

质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括 Solr是Lucene面向企业搜索应用的扩展。

二、 Solr的安装配置 ? 下载solr的解压包并解压

http://lucene.apache.org/solr/ 此教程使用的是solr5.0

bin:solr的运行脚本

contrib:solr的软件/插件,用于增强solr的功能。

dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。

docs:solr的API文档

example:solr工程的例子目录:

example/solr: 该目录是一个包含了默认配置信息的Solr的Core目录。

example/multicore:该目录包含了在Solr的multicore中设置的多个Core目录。

licenses:solr相关的一些许可信息