Lucene、solr以及elasticsearch之间的区别和联系
2018-03-05 16:06
253 查看
首先分别说明三者的概念:Lucene是一套信息检索工具包,并不包含搜索引擎系统,它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此在使用Lucene时仍需要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西。而solr和elasticsearch都是基于该工具包做的一些封装。
Solr是一个有HTTP接口的基于Lucene的查询服务器,封装了很多Lucene细节,自己的应用可以直接利用诸如 .../solr?q=abc 这样的HTTP GET/POST请求去查询,维护修改索引。
Elasticsearch也是一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。采用的策略是分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
Lucene使用上更加灵活,但是你需要自己处理搜素引擎系统架构,以及其他附加附加功能的实现。而Solr帮你做了更多,但是是一个处于高层的框架,Lucene很多新特性不能及时向上透传,所以有时候可能发现需要一个功能,Lucene是支持的,但是Solr上已经看不到相关接口。
然后说明三者之间的区别首先说明三者之间的一个联系:solr和elasticsearch都是基于Lucene实现的!其次solr利用zookpper进行分布式管理,而elasticsearch自身带有分布式协调管理功能;solr比elasticsearch实现更加全面,solr官方提供的工恩能够更多,而elasticsearch本身更注 重于核心功能,高级功能多由第三方插件提供;solr在传统的搜索应用中表现好于elasticsearch,而elasticsearch在实时搜索应用方面比solr表现好!
最后有必要说明一下传统搜索和实时搜索:传统搜索是从静态数据库中筛选出符合条件的结果,这种结果往往是不可变得、静态的。而实时搜索则是说用户对于搜索的结果是实时变化的。
Solr是一个有HTTP接口的基于Lucene的查询服务器,封装了很多Lucene细节,自己的应用可以直接利用诸如 .../solr?q=abc 这样的HTTP GET/POST请求去查询,维护修改索引。
Elasticsearch也是一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。采用的策略是分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
Lucene使用上更加灵活,但是你需要自己处理搜素引擎系统架构,以及其他附加附加功能的实现。而Solr帮你做了更多,但是是一个处于高层的框架,Lucene很多新特性不能及时向上透传,所以有时候可能发现需要一个功能,Lucene是支持的,但是Solr上已经看不到相关接口。
然后说明三者之间的区别首先说明三者之间的一个联系:solr和elasticsearch都是基于Lucene实现的!其次solr利用zookpper进行分布式管理,而elasticsearch自身带有分布式协调管理功能;solr比elasticsearch实现更加全面,solr官方提供的工恩能够更多,而elasticsearch本身更注 重于核心功能,高级功能多由第三方插件提供;solr在传统的搜索应用中表现好于elasticsearch,而elasticsearch在实时搜索应用方面比solr表现好!
最后有必要说明一下传统搜索和实时搜索:传统搜索是从静态数据库中筛选出符合条件的结果,这种结果往往是不可变得、静态的。而实时搜索则是说用户对于搜索的结果是实时变化的。
相关文章推荐
- prototype 和 proto function 和 object 以及new之间的区别和联系
- lucene 和 solr 简介以及区别
- 第二周__“RSA”、“数字签名”、“公钥”、“DES”等4个名词的解释以及公钥加密 与 数字签名 之间的联系与区别
- Linux中profile、bashrc、~/.bash_profile、~/.bashrc、~/.bash_profile之间的区别和联系以及执行顺序
- cdev、misc以及device三者之间的联系和区别
- Lucene 或者 solr 的区别联系
- 从一道试题分析请求分页的虚拟内存机制、高速缓存的cache机制以及两者之间的区别联系
- TCP IP以及Scoket之间的区别与联系
- 域控制器、成员服务器以及独立服务器之间有何区别和联系
- 互联网中一些技术基本概念以及之间的联系与区别
- 分治算法,动态规划,贪婪算法以及递归之间的区别与联系
- php的运行原理、cgi对比fastcgi以及php-cgi和php-fpm之间的联系区别
- 区位码,国标码,内码之间的区别与联系,以及如何转换
- Android中px,pt,dp,sp,dpi之间的区别以及联系
- ActiveMQ中的消息的持久化和非持久化 以及 持久订阅者 和 非持久订阅者之间的区别与联系
- 字符编码之ASCII、Unicode以及utf-8之间的联系与区别
- JMS学习(五)--ActiveMQ中的消息的持久化和非持久化 以及 持久订阅者 和 非持久订阅者之间的区别与联系
- lucene nutch solr及hadoop的区别和联系
- 全文检索工具lucene、solr的区别以及MongoDB的全文检索
- Java五个最常用的集合类之间的区别和联系