2017年2月12日, 星期日java
Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。Solr 提供了层面搜索(就是统计)、命中醒目显示而且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配置,并且附带了一个基于HTTP 的管理界面。可使用 Solr 的表现优异的基本搜索功能,也能够对它进行扩展从而知足企业的须要。Solr的特性包括:web
· 高级的全文搜索功能 缓存
· 专为高通量的网络流量进行的优化 tomcat
· 基于开放接口(XML和HTTP)的标准 性能优化
· 综合的HTML管理界面 服务器
· 可伸缩性-可以有效地复制到另一个Solr搜索服务器 网络
· 使用XML配置达到灵活性和适配性 架构
· 可扩展的插件体系app
Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta(雅加达) 家族中的一个开源项目。也是目前最为流行的基于Java开源全文检索工具包。目前已经有不少应用程序的搜索功能是基于 Lucene ,好比Eclipse 帮助系统的搜索功能。Lucene可以为文本类型的数据创建索引,因此你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。webapp
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)
1、准备jdk7和tomcat7
2、拷贝solr目录下example/webapps/solr.war,到tomcat下的webapps目录中。
3、启动tomcat7
4、编辑tomcat7中的webapps/solr目录中WEB-INF/web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/root/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
5、拷贝solr目录下的example/lib/ext目录的全部jar到tomcat7的solr的lib
6、拷贝solr目录下的example/solr/* 全部文件到 /root/solr_home 下
7、从新启动tomcat
8、访问http://localhost:8080/solr