介绍

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 源码走一遍流程

转载于:https://juejin.im/post/5c9cdce2e51d45014f468c19

ElasticSearch.js源码走一个大概相关推荐

  1. js define函数_不夸张,这真的是前端圈宝藏书!360前端工程师Vue.js源码解析

    优秀源代码背后的思想是永恒的.普适的. 这些年来,前端行业一直在飞速发展.行业的进步,导致对从业人员的要求不断攀升.放眼未来,虽然仅仅会用某些框架还可以找到工作,但仅仅满足于会用,一定无法走得更远.随 ...

  2. JavaScript数字运算必备库——big.js源码解析

    概述 在我们常见的JavaScript数字运算中,小数和大数都是会让我们比较头疼的两个数据类型. 在大数运算中,由于number类型的数字长度限制,我们经常会遇到超出范围的情况.比如在我们传递Long ...

  3. Elasticsearch CCR源码分析(补充)

    接上篇TODO Elasticsearch CCR源码分析 上篇TODO: http请求(ccr/follow)接收到后,follow集群节点开始全量同步,是以snapshot的模式去拉leader集 ...

  4. video.js 源码解析

    为什么80%的码农都做不了架构师?>>>    写在前面 现在视频业务越来越流行了,播放器也比较多,作为前端工程师如何打造一个属于自己的播放器呢?最快最有效的方式是基于开源播放器深度 ...

  5. impress.js 源码分析

    impress.js 源码分析   之前做展示用幻灯片,我一直热衷于使用PPT,刚开始学习PPT时总是强行使用各种页面特效,越做越复杂.现在看来,学技术大概都要经历一个从简到繁再到简的过程吧.后来,无 ...

  6. MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法

    说在前 有时,我们在使用一个插件时,在网上即找不到它的相关API,这时,我们会很抓狂的,与其抓狂,还不如踏下心来,分析一下它的源码,事实上,对于JS这种开发语言来说,它开发的插件的使用方法都在它的源码 ...

  7. vue.js源码学习分享(一)

    今天看了vue.js源码  发现非常不错,想一边看一遍写博客和大家分享 /*** Convert a value to a string that is actually rendered. *转换一 ...

  8. js怎么调用wasm_Long.js源码解析

    基于现在市面上到处都是 Vue/React 之类的源码分析文章实在是太多了.(虽然我也写过 Vite的源码解析 所以这次来写点不一样的.由于微信这边用的是 protobuf 来进行 rpc 调用.所以 ...

  9. underscore.js源码研究(5)

    概述 很早就想研究underscore源码了,虽然underscore.js这个库有些过时了,但是我还是想学习一下库的架构,函数式编程以及常用方法的编写这些方面的内容,又恰好没什么其它要研究的了,所以 ...

最新文章

  1. python中break和continue的区别
  2. 一文带你了解Spring核心接口Ordered的实现及应用
  3. python版本选择-【小白学python】之一:版本选择
  4. STM32 基础系列教程 49 – Jansson
  5. jQuery的链Chaining
  6. 我的世界服务器端口文件夹,我的世界手机版服务器ip端口地址大全
  7. C、C++和MFC中文件的操作
  8. Qt QT_BEGIN_NAMESPACE
  9. 软件开发模型、瀑布模型、V模型、原型模型、增量模型、螺旋模型、喷泉模型
  10. Vue2组件间通信——父传子值props
  11. 异方差下的OLS估计无效性
  12. linux gpio喂狗驱动
  13. 怎么建站?如何搭建个人网站(一)
  14. python如何判断列表是否为空_python简单判断序列是否为空的方法
  15. 三维重建 PyQt Python VTK 医学图像的可视化 vtkImageView2三视图(横断面,冠状面,矢状面)
  16. 报错解决:expected START_TAG or END_TAG not TEXT (position: TEXT seen
  17. 如何设置省略号对其序号 html,CSS实现单行、多行文本溢出显示省略号(…)
  18. 停机问题--The Halting Problem
  19. java中esb是什么意思_ESB与服务
  20. 软工非全研究生学习和工作总结-开题和第三辆捷安特

热门文章

  1. canvas 封装一个自己的 icon 库
  2. MySQL使用什么关键字添加唯一约束_mysql怎么添加唯一约束?
  3. matlab smooth 函数,matlab中smooth函数平滑处理数据实例
  4. fs.readfile 显示html,javascript – 从fs.readFile获取数据
  5. php页面自分页刷新,详解PHP+AJAX无刷新分页实现方法
  6. java server2008_在windows server 2008下搭建简单的java学习环境
  7. java工具类_非常实用的Java工具类,拿走不谢(一)
  8. .net framework 4.0安装_R4.0的源码安装——以mac为例
  9. 20201015:力扣第210场周赛题解(上)
  10. 三星明星机又悲剧了!万元折叠屏,玩不过2天,组团黑屏,蜜汁凸起