elasticsearch,lucene ,solr 的简单介绍区别与联系(一)

  • Post author:
  • Post category:其他



lucene的概述


Lucene是一个高性能、可伸缩的信息搜索(IR)库。它可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的、成熟的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于Apache软件许可 [ASF, License]。同样,Lucene是当前非常流行的、免费的Java信息搜索(IR)库。


1:ES的概述


ES是对apache lucene的封装。

ES是elasticSearch的缩写,它是一个实时的分布式的查询和分析引擎。它是基于apache lucene开发的。

2:ES的目标是让全文搜索变得简单

3:ES可以支持横向的扩展,支持pb级别的结构和非机构化的数据处理。

4:使用ES可以以前所未有的速度来处理大数据。

5:

https://www.elastic.co/cn/

点击这个链接,获取更多的信息。


ElasticSearch 的工作原理


我们假设 百度的用的是 ElasticSearch,工作的流程如下,

1:是在百度的搜索框中输入要的关键词信息 。

2:回车或者点击百度一下按钮,

3:把关键词的信息传入到搭建好的ES集群。

4: 把查询到的结果返回 给client。


有俩个前提的条件如下


1:ES集群要搭建好的

2:使用爬虫技术爬取海量 的数据,把爬到的数据存入到这个ES集群的索引中。

在这里插入图片描述


ES的应用场景


1:站内的搜索如(淘宝,天猫等。。

2:在数据存储和数据可视化方面是引领者。

3:国外的维基百科 ,github使用ES的搜索引擎,

4:国内的百度,阿里云 等。。


solr的概念


1:solr和elasticsearch一样也是在apache lucene的全文搜索服务器进行开发的。

2:solr和elasticsearch都是基于该apache lucene做的一些封装


三种的区别与联系:


在使用Lucene时仍需要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西。而solr和elasticsearch都是基于该工具包做的一些封装。

Solr是一个有HTTP接口的基于Lucene的查询服务器,封装了很多Lucene细节,自己的应用可以直接利用诸如 …/solr?q=abc 这样的HTTP GET/POST请求去查询,维护修改索引。

solr的安装是比较复杂的,而elasticsearch是比较简单的开箱即用。

Lucene使用上更加灵活,但是你需要自己处理搜素引擎系统架构,以及其他附加附加功能的实现。而Solr帮你做了更多,但是是一个处于高层的框架,Lucene很多新特性不能及时向上透传,所以有时候可能发现需要一个功能,Lucene是支持的,但是Solr上已经看不到相关接口。

solr和elasticsearch都是基于Lucene实现的!

其次

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

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

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

es天生就是为分布式而生的,而solr在4.x以后 才逐渐支持

es只支持json的格式,而solr支持更多的格式如csv,json,xml;

solr 在查询时速度较快,但是更新索引(插入删除)时比较慢的,适合用于查询多的业务,

es在建立索引快,查询快, 适合新兴的的实时搜索应用。



版权声明:本文为weixin_43319279原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。