Lucene、solr以及elasticsearch之间的区别和联系

全球数据库排行:DB-Engines Ranking数据库

 

首先分别说明三者的概念:服务器

Lucene是一套信息检索工具包,并不包含搜索引擎系统,它包含了索引结构、读写索引工具、相关性工具、排序等功能,所以在使用Lucene时仍须要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西。而solr和elasticsearch都是基于该工具包作的一些封装。架构

Solr是一个有HTTP接口的基于Lucene的查询服务器,封装了不少Lucene细节,本身的应用能够直接利用诸如 .../solr?q=abc 这样的HTTP GET/POST请求去查询,维护修改索引。框架

 

Elasticsearch也是一个创建在全文搜索引擎 Apache Lucene基础上的搜索引擎。采用的策略是分布式实时文件存储,并将每个字段都编入索引,使其能够被搜索。elasticsearch

 

Lucene使用上更加灵活,可是你须要本身处理搜素引擎系统架构,以及其余附加附加功能的实现。而Solr帮你作了更多,可是是一个处于高层的框架,Lucene不少新特性不能及时向上透传,因此有时候可能发现须要一个功能,Lucene是支持的,可是Solr上已经看不到相关接口。分布式

 

而后说明三者之间的区别工具

首先说明三者之间的一个联系:solr和elasticsearch都是基于Lucene实现的!搜索引擎

其次spa

solr利用zookpper进行分布式管理,而elasticsearch自身带有分布式协调管理功能;插件

solr比elasticsearch实现更加全面,solr官方提供的功能更多,而elasticsearch自己更注 重于核心功能,高级功能多由第三方插件提供;

solr在传统的搜索应用中表现好于elasticsearch,而elasticsearch在实时搜索应用方面比solr表现好!

 

最后有必要说明一下传统搜索和实时搜索:

传统搜索是从静态数据库中筛选出符合条件的结果,这种结果每每是不可变得、静态的。而实时搜索则是说用户对于搜索的结果是实时变化的。

相关文章
相关标签/搜索