专栏首页吴伟祥Lucene、solr以及elasticsearch之间的区别和联系

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

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

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

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表现好!

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

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

本文转载自:https://blog.csdn.net/weixin_37886463/article/details/79447063

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux常用命令(五) 原

    将/tmp/Japan目录下的boduo和longze目录复制到/root下,保持目录属性

    wuweixiang
  • 五分钟搞定Bash功能与使用技巧 转

    一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无法与硬件或内核打交道的,用户通...

    wuweixiang
  • 通过Docker安装JIRA和Confluence(转)

    需要注意的是,Confluence需要使用utf8_bin,并将事务隔离策略设为READ-COMMITTED。

    wuweixiang
  • Sentinel与OpenFeign整合实现熔断降级源码分析

    Sentinel无论是实现限流还是熔断降级,其实都是通过适配模块去实现拦截方法的执行,在方法执行之前调用所有ProcessorSlot的entry方法,在方法执...

    wujiuye
  • Python设计模式(12):命令模式

    在实际生活中,社会分工十分明确。一个常见的实例是餐厅的就餐者、服务员和厨师之间的关系。就餐者向服务员提供一些具体的要求,例如告诉服务员“我们有 6 个人,要吃海...

    不可言诉的深渊
  • Generator:化异步为同步

    一、Promise并非完美 我在上一话中介绍了Promise,这种模式增强了事件订阅机制,很好地解决了控制反转带来的信任问题、硬编码回调执行顺序造成的“回调金...

    挖掘大数据
  • linux下查找文件并按时间顺序排序的方法

    本节内容,介绍在linux系统查找指定的文件,并按时间顺序进行排序的方法。 例如,查找当前目录下的所有 version.ini文件,并按时间排序,运行命令: f...

    joshua317
  • 技术分享 | MySQL Test 初探

    MySQL Test 是 MySQL 发行版本中集成 all-in-one 测试框架,用于做 mysql 服务的单元,回归和一致性测试,并提供了运行单元测试和创...

    爱可生开源社区
  • 在Windows Mobile上实现自动拼写和匹配建议

    使用Windows Mobile手机的朋友,应该有一个体会,那就是要查找某个联系人,在输入目标联系人名字的过程中,系统会实时按照所输入的内容来筛选,呈现...

    ShiJiong
  • 如何从终端发送桌面通知给用户(notify-send)

    就我以前经常会碰到这么一个问题,就是在我在编译一个软件或者要长时间执行一个命令的时候会经常去看这个命令有没有执行完成,那么会不会有这么一个工具,就是在你执行ma...

    bboysoul

扫码关注云+社区

领取腾讯云代金券