Elasticsearch 什么是Elasticsearch?

一、什么是Elasticsearch?

  Elasticsearch(ES)是一个基于Lucene构建的开源,分布式,RESTful接口全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段都是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内存储、搜索和分析大量的数据。他通常作为具有复杂搜索场景情况下的核心发动机。

  Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成,称为垂直扩展或者向上扩展,或增加服务器数量来完成,称为水平扩展或向外扩展。

1.1 Elasticsearch历史

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

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

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

  第一个公开版本发布于2010年2月,在那之后Elasicsearch已经成为GitHub上最受欢迎的项目之一,代码贡献者超过300人。直到2016年3月30日,Elasicsearch已经发布了2.3.0版本。目前已经成为全球最受欢迎的全文搜索引擎。

  下面来说下Elasicsearch的优点:

    1.横向可扩展性: 只需要增加一台服务器,做一点儿配置,启动下Elasicsearch进程就可以并入集群。

    2.分片机制提供更好的分布性: 同一个索引分成多个分片(sharding),这点类似与HDFS的块机制;分而治之的方式可提升处理效率。

    3.高可用: 提供复制(replica)机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。

    4.使用简单: 只需要一条命令就可以下载文件,然后很快就能搭建一个站内搜索引擎。

 

 

posted @ 2017-10-30 23:38  40块钱抓娃娃  阅读(186)  评论(0编辑  收藏  举报