ElasticSearch.js源码走一个大概

介绍

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个创建在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.固然 Elasticsearch 并不单单是 Lucene 那么简单。前端

什么是ElasticSearch

首先须要知道什么是lucene,lucene它就是一个Java的jar包,里面实现了倒排索引的算法和其余的全文检索相关的东西,ElasticSearch就是对lucene进行了封装,为何有lucene了还要ElasticSeaearch来干什么呢?首先,当数据量很大的时候,好比有1PB的数据,这个时候数据放在同一台机器上基本就不行了,那么把数据分开来放在多台机器上呢?那就变成分布式了,这个时候数据前端获取数据的时候到底去那一台机器上面去获取数据呢?这个时候就很麻烦了,若是某一台机器宕机了,那么这个机器上的数据就获取不到了,这也就没法保证高可用性了,还有数据存储的时候怎么到底存入那台机器等等,这些都须要人为的处理和维护。这个时候ElasticSearch就应运而生了,它就将lucene这些弊端给彻底解决了。算法

举例一些优势

  • 高性能,自动维护数据分布到多个节点进行索引的创建,还有搜索请求分布到多个节点的执行。
  • 高可用,自动维护数据的冗余副本,保证说,一些机器宕机了,不会形成数据的丢失。 封装了更多的高级功能,以给咱们提供更多的高级支持,让咱们快速的开发应用,开发更加复杂的应用,复杂的搜索功能,聚合分析的功能,基于地理位置的搜索(好比周围一千米内有几家咖啡厅)等等。
  • 动态扩容,当咱们数据量急剧提高的时候,咱们只须要增长机器就好了,好比两台机器存放1.2T数据,那么没台机器存放就是600G,可是若是600G对于服务器的压力太大了,这个时候就须要增长第三台机器,让他们每人负责400G的数据,这个过程不须要人为的去分配,只须要将汲取加入集群中就自动完成。

ElasticSearch.js 源码走一遍流程

相关文章
相关标签/搜索