1,什么是solr?
Solr是一个独立的企业级搜索应用服务器,他对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务提供一定格式的xml文件,生成索引;也可以通过http get 操作提供查找请求,并得到xml格式的返回结果
2.,solr特点
Solr是一个高性能,采用java语言,基于Lucene开发的全文搜索服务器。并对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置,可扩展并对查询性能进行了优化,提供了一个完善的功能管理页面,是一款非常优秀的全文搜索引擎。
3,solr工作方式
文档通过http利用xml加到一个搜索集合中。solr查询该集合也是通过http收到一个xml/json响应来实现。他的主要特性包括:高效,灵活的缓存功能,垂直搜索功能,高亮下试搜索结果,通过索引复制来提高可用性,提供一套强大的data schema 来定义字段,类型和设置文本分析,提供基于web的管理界面等。
4,什么是Lucene
Lucene是apache软件基金会jakarta项目组的一个项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英德语言)
Lucene的目的是一个为开发人员提供一个简单易用的工具包,以方便的目标系统中实现全文检索的功能,或者是以此为基础建立起来完整的全文检索引擎
5,Solr与Lucene的区别
Solr和Lucene的本质区别三点:搜索服务器,企业级和管理。
Lucene本质上是搜索库,不是独立的应用程序,而Solr是。
Lucene专注于搜索底层的建设,而Solr专注与企业应用。
Lucene不负责支撑搜索服务所必须的管理,而Slor负责
所以说,一句话概括solr是Lucene面向企业搜索应用的扩展。
6,Solr服务原理
Solr对外提供标准的http接口来实现对数据的索引的增加,删除,修改,查询
在solr中,用户通过像部署在sevlet容器中的solr web应用成勋发送http请求来启动索引和搜索
solr接受请求,确定要使用的适当的SolrRequestHandler,然后处理请求,通过http以同样的方式返回响应
默认配置返回solr的标准xml数据,也可以配置solr的备用响应格式
7,原理图
8,solr索引原理
可以向solr索引Servlet传递四个不同的索引请求
1,add/update允许向solr添加文档或更新文档。直到提交后才能索引到这些添加和更新
2,commit告诉Solr,应该使用上次提交以来所做的所有更改都可以搜索到
3,optimize重构lucene的文件以改进搜索性能,索引完成后执行一下优化通常比较好。如果更新比较频繁,则应该在使用率较低的时候安排优化。一个索引无需优化也可以正常地运行。优化是一个耗时较多的过程
4,delete可以通过id或者查询来指定。按id删除将删除具有指定id的文档,按照查询删除将删除查询返回的所有文档。