1. Solr 是什么?
ApacheSolr 是一个开源的搜索服务器,Solr使用 Java语言开发,主要基于 HTTP 和Apache Lucene 实现。定制Solr 索引的实现方法很简单,用 POST方法向 Solr服务器发送一个描述所有 Field及其内容的 XML文档就可以了。定制搜索的时候只需要发送 HTTPGET请求即可,然后对 Solr 返回的信息进行重新布局,以产生利于用户理解的页面内容布局。Solr1.3版本开始支持从数据库(通过 JDBC)、RSS提要、Web页面和文件中导入数据,但是不直接支持从二进制文件格式中提取内容,比如 MSOffice、AdobePDF或其他专有格式。
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架构图: