ElasticSearch是什么玩意儿?

南风 2020年10月15日 190次浏览

一、基于Lucene开源全文检索引擎

 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene 基础之上,它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。

二、Elasticsearch的前世今生     

 许多年前,一个刚结婚的名叫 Shay Banon 的失业开发者,跟着他的妻子去了伦敦,他的妻子在那里学习厨师。 在寻找一个赚钱的工作的时候,为了给他的妻子做一个食谱搜索引擎,他开始使用 Lucene 的一个早期版本。    
 直接使用 Lucene 是很难的,因此 Shay 开始做一个抽象层,Java 开发者使用它可以很简单的给他们的程序添加搜索功能。 他发布了他的第一个开源项目 Compass。   
 后来 Shay 获得了一份工作,主要是高性能,分布式环境下的内存数据网格。这个对于高性能,实时,分布式搜索引擎的需求尤为突出, 他决定重写 Compass,把它变为一个独立的服务并取名 Elasticsearch。
 第一个公开版本在2010年2月发布,从此以后,Elasticsearch 已经成为了 Github 上最活跃的项目之一,他拥有超过300名 contributors(目前736名 contributors )。 一家公司已经开始围绕 Elasticsearch 提供商业服务,并开发新的特性,但是,Elasticsearch 将永远开源并对所有人可用。
 据说,Shay 的妻子还在等着她的食谱搜索引擎…​

三、这玩意儿能做什么?

  • 1、一个分布式的实时文档存储,每个字段 可以被索引与搜索
  • 2、一个分布式实时分析搜索引擎
  • 3、能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据

四、实际应用场景

  • 1、电子商务系统用于商品信息的展示与检索,如某猫、某东等。
  • 2、ELK日志分析系统,如阿里云的日志分析系统。
  • 3、经典的全文检索案例,如WIKI、Stack Overflow等网站。

五、那MySQL也可以实现检索功能,为啥不用呢?

  • 1、全文检索类似于模糊查询,如果对MySQL有某一个字段存储一篇5w字的文章,总共有1000w篇文章,如果每次使用LIKE查询过滤这个字段,请脑补执行SQL后的场景。。。
  • 2、那又为啥ES行它不行呢?且听下回分解...

Elasticsearch实际上就是在Lucene上面做的一层封装,将全文检索简单化,从而使得项目更容易集成,大大降低开发和运维的成本。