ElasticSearch概述

网友投稿 997 2022-11-18

ElasticSearch概述

ElasticSearch概述

​​ElasticSearch目录​​

在学习ElasticSearch之前,先简单了解一下Lucene:

Doug Cutting开发是apache软件基金会4 jakarta项目组的一个子项目是一个开放源代码的全文检索引擎工具包不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分​​文本分析​​引擎(英文与德文两种西方语言)当前以及最近几年-免费Java信息检索程序库。

Lucene和ElasticSearch的关系:

ElasticSearch是基于Lucene 做了一下封装和增强

一、ElasticSearch概述

官网:API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

据国际权威的数据库产品评测机构DB Engines的统计,在2016年1月,ElasticSearch已超过Solr等,成为排名第一的搜索引擎类应用。

1.1、历史

多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,由于妻子要去伦敦学习厨师,他便跟着也去了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene。

直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便lava程序员可以在应用中添加搜索功能。他发布了他的第一个开源项目,叫做“Compass”。

后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch。

第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上-项目之一,代码贡献者超过300人。一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功能,不过Elasticsearch将永远开源且对所有人可用。

Shay的妻子依旧等待着她的食谱搜索……

谁在使用:

1.2、ElasticSearch简介

Elasticsearch是一个实时分布式搜索和分析引擎。 它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用:​​维基百科​​使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-asyou-type)和搜索纠错(did-you-mean)等搜索建议功能。​​英国卫报​​使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回应。​​StackOverflow​​结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案。​​Github​​使用Elasticsearch检索1300亿行的代码。但是Elasticsearch不仅用于大型企业,它还让像​​DataDog​​​以及​​Klout​​这样的创业公司将最初的想法变成可扩展的解决方案。Elasticsearch可以在你的笔记本上运行,也可以在数以百计的服务器上处理PB级别的数据。Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域, Lucene可被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。

但是,Lucene只是一个库。 想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是, Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。

Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

1.3、Solr简介

Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化Solr可以独立运行,运行在letty. Tomcat等这些Selrvlet容器中 , Solr 索引的实现方法很简单,用POST方法向Solr服务器发送一个描述Field及其内容的XML文档, Solr根据xml文档添加、删除、更新索引。Solr 搜索只需要发送HTTP GET请求,然后对Solr返回xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。Solr是基于lucene开发企业级搜索服务器,实际上就是封装了lucene.Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过ElasticSearch,我们看见一个即时~ 50x提高搜索性能!:

1.5、总结

es基本是开箱即用(解压就可以用!) ,非常简单。Solr安装略微复杂一丢丢!Solr 利用Zookeeper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能。Solr 支持更多格式的数据,比如JSON、XML、 CSV ,而Elasticsearch仅支持json文件格式。Solr 官方提供的功能更多,而Elasticsearch本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要kibana友好支撑。Solr 查询快,但更新索引时慢(即插入删除慢) ,用于电商等查询多的应用;

ES建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索。Solr是传统搜索应用的有力解决方案,但Elasticsearch更适用于新兴的实时搜索应用。

Solr比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而Elasticsearch相对开发维护者较少,更新太快,学习使用成本较高。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:3.1 Kafka 工作流程及文件存储机制
下一篇:SpringCloud中Gateway实现鉴权的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~