你不知道的全文检索---solr概述
在介绍solr之前我还是想简单的说说什么是全文检索,全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法。
例如:在jrkj这个平台中如果我想通过比如说讲师的所在地、讲师擅长的领域等属性去查询讲师的信息的话。这个时候我就能够用到全文检索了。
最近全文检索引擎solr比较火,正好笔者的项目中需要用所以笔者就了解了一下相关的内容,今天就简单的介绍一下solr。
简介
Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,它是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。同时solr实现了可配置、可扩展,并对索引、搜索性能进行了优化。
特点
可扩展性:Solr可以把建立索引和查询处理的运算分布到一个集群内的多台服务器上。
快速部署:Solr是开源软件,安装和部署都很方便,可以根据安装包内的Sample配置直接上手。
优化的搜索功能:Solr搜索快,对于复杂的搜索也能够快速的处理。
海量文本:Solr是针对百万级以上的海量文本处理而设计的,可以很好的处理海量数据。
文本中心的数据:Solr为搜索包含自然语言的文本内容做了优化,比如电子邮件,网页,简历,PDF文档,或是推特、微博、博客等等,都适合用Solr来处理。
结果是按相关性排序的:Solr的搜索返回结果是按照结果文档与用户查询之间的相关程度做排序的,保证最相关的结果会优先返回。
为什么要用Solr?
1、 基于Lucene自己进行封装实现站内搜索。工作量大
2、 调用baidu的站内搜索api实现站内搜索,第三方搜索引擎无法满足后期业务扩展需要
3、 基于Compass+Lucene实现站内搜索。适合于对数据库驱动的应用数据进行索引,尤其是替代传统的like „%expression%‟来实现对varchar或clob等字段的索引,对于实现站内搜索是一种值得采纳的方案。但在分布式处理、接口封装上尚需要自己进行一定程度的封装。
4、 基于Solr实现站内搜索。封装及扩展性较好,提供了较为完备的解决方案,因此在门户社。
文章最后来张solr的图