Elastic Serch 进阶版问题
Elastic Serch
什么是elasticSerch?
elasticSerch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据快速找到需要的内容。
在数据库的索引失效的情况下和海量数据查询时,使用elasticserch什么是elk
elk 结合kibana 。 Logstash,Beats,也就是elastic Stack(ELK)。被广泛应用在日志数据分析,实时监控等领域elasticSerch的底层是Lucene
1.倒排序索引法?
文档:一条数据就是一个文档
词条(term):文档按照予以分成的词语
es的索引:相同类型的文档集合
映射:索引中文文档的字段约束信息,类似表的结构约束
先准备一个索引空间(以空间换时间)
将查询条件分词然后进行等值匹配得到的id再显示出来
2.如何在项目中使用线程池?当有一个非常大的任务,我们把这个任务拆分为多个小任务,线程池里面的线程去执行每个拆分出来的小任务。
es的集群原理
在客户端是会配置集群的ip与port,经过ip/port转发到es服务器上,接收转发的服务器是协调服务器,协调服务器也会根据ip/port转发到相应要查找数据的子服务器上。但是查的数据可能也不止在一个子服务器上,而且子服务器可能会挂掉假设子服务器es-01会挂掉,就会通过自己的shrad primary数据节点进行向其他服务器发起数据同步,将自己的的数据备份到假设为es-03的服务器上备份数据为shard replica 经过备份后es-03会向协es-01发起通知说明已备份完成,再es-01向调服务器es-02返回信息,然后协调服务器再将查询到的数据返回给客户端。
补充:
- es服务集群下的master角色:
该角色与与协调节点服务器没有任何关系,但他也可以是协调服务器。如果在集群里面有服务器挂了的话,假设还是es-01挂了,他会把上述es-03备份的es-01的replica节点数据提升为shard primary 节点。该master角色的作用与Redis集群的master的作用相似。 - 分片备份:
多台服务器备份不是自己的数据,备份的primary为replica,备份的数据要保存数据同步。
es的写入,查询。检索
写入问题:
es会先去os cache中去找要查的数据。es就能收到这个数据。 es准时的同步(几乎)只需要1s,对于左侧的os 同步数据持久化,做的是随机写入,到时候读的话就是随机读,虽然写的块但是读的慢,性能消耗极大。几乎不会丢数据。
但是如果把os cache中的数据每5min传入到translog的操作日志中去,当translog每30min或者translog写满了就会做数据数据持久化操作,触发commit 再写到磁盘里面。translog是记录操作数据的日志,日志的数据一般不会丢,但是从cache 传过来的数据可能会丢失(5min数据)
在commit之后,document文件会生成为segement file文件,持久存储在磁盘里面。segement file是用于存放真实数据的位置。
补充:
- 磁盘的顺序写于顺序读问题:
磁道(track):磁道是单个盘面上的同心圆,当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道,一个盘面上的磁道可以有成千上万个。相邻磁道之间并不是紧挨着的,这是因为磁化单元相隔太近时磁性会产生相互影响,同时也为磁头的读写带来困难。
扇区(sector):磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。硬盘的第一个扇区,叫做引导扇区。扇区是被间隙(gap)分割的圆的片段,间隙未被磁化成0或者1。注意,扇区是读写磁盘最基本的单位,如果一个扇区因为某种原因被破坏,那么整个扇区的数据都会受影响。
读取的数据是在磁盘的扇区上
如果不是相邻扇区进行读写操作叫做随机读写,性能十分差,如果读取的数据在相邻的扇区,那么磁盘的性能较高,读写就是顺序读写。
es的删除操作
es中维护了一个.del文件,要删除的时候,客户端会直接访问这个文件,而不去管segement file 是否真的删除了,.del文件有类似于定时任务的机制,到点就删,而且segement file有一个临界条件,如果达到了这个临界条件,segement file会去执行merge操作,合成一个新的大的segement file中没有这些被删除的的记录,丢失会向.del文件查询。
es的查询与检索
- 查询原理 :可以理解为,es作为海量数据的搜索引擎,如何减轻es的访问压力,在es看来是十分重要的:
读数据时,会找到任意一台协调节点,会根据documentID进行hash运算,会算出来所有的primary和replica节点,然后就会把这些节点拿去做负载均衡,读取对于的数据,把数据返回给协调节点,然后再传到客户端。
- 检索原理:es不知道你要去搜索的东西是在primary或者replica节点,此时协调节点就会去向所有shard 发起广播,问那个shard维护的倒排序索引有对应词条的documentID,此时并不会把documentID对应的文档直接发给协调节点的服务器,而是会在内存里面进行排序分页等操作,处理完成后再根据处理好的顺序documentID到对应的shard上去拿真实数据给客户端。
es的深度分页问题
Elastic Serch 进阶版问题相关推荐
- 特朗普“模仿”奥巴马?进阶版换脸技术DeepFakes来了
整理 | 费棋 出品 | AI科技大本营 DeepFakes,这种能够移花接木的技术,它能将图像或视频中把一张脸替换成另一张脸. 去年 12 月,一个名 Reddit 用户用 DeepFakes 技术 ...
- 移动端页面自适应解决方案—rem布局(进阶版)
之前的一篇<手机端页面自适应解决方案-rem布局>随着时间的推移,该方案已然过时,故为大家介绍一个目前我极力推荐使用的,更加完美的方案--rem布局(进阶版) 该方案使用相当简单,把下面这 ...
- 36篇博文带你学完opencv :python+opencv进阶版学习笔记目录
基础版学习笔记传送门 36篇博文带你学完opencv :python3+opencv学习笔记汇总目录(基础版) 进阶版笔记 项目 opencv进阶学习笔记1: 调用摄像头用法大全(打开摄像头,打开摄像 ...
- Tensorflow详解保存模型(进阶版一):如何有选择的保存变量
当然掌握了基础版还不够,我们来看一下进阶版一:如何有选择的保存变量: 这里还要另外涉及两个函数: tf.variable_scope("xxx") 和 tf.get_variabl ...
- kaggle (02) - 房价预测案例(进阶版)
房价预测案例(进阶版) 这是进阶版的notebook.主要是为了比较几种模型框架.所以前面的特征工程部分内容,我也并没有做任何改动,重点都在后面的模型建造section Step 1: 检视源数据集 ...
- c++ 三次多项式拟合_线性回归进阶版,多项式线性回归讲解与实现(附完整代码)...
每天给小编五分钟,小编用自己的代码,带你轻松学习深度学习!本文将会带你做完一个深度学习进阶版的线性回归---多项式线性回归,带你进一步掌握线性回归这一深度学习经典模型,然后在此基础上,小编将在下篇文章 ...
- 蓝桥杯 入门训练 A+B问题进阶版(两个3000位数的加法)
自古码农出少年,年年都有"A+B" 自古码农出少年,年年都有"A+B" 自古码农出少年,年年都有"A+B" 问题描述 输入A.B,输出A+B ...
- python学习-- django 2.1.7 ajax 请求 进阶版
#原来版本 $.get("/add/",{'a':a,'b':b}, function(ret){ $('#result').html(ret)}) #进阶版 $.get(&qu ...
- 手机端页面自适应解决方案—rem布局进阶版
旧版rem布局 <手机端页面自适应解决方案-rem布局>, 此方案仅适用于移动端web 文章底部常见问题说明第四条,笔者已给出一个相当便捷的解决方案,欢迎留言交流.(2017/9/9) 该 ...
最新文章
- 进入贝壳网_贝壳网app下载安装
- a类不确定度计算器_统统帮您搞定:LIMS系统,换版、内审、期间核查、不确定度、数据分析…………...
- cProfile——Python性能分析工具
- springboot-web开发(请求映射原理)
- vim设置显示行号,vim跳转到文件头,文件尾
- 【C语言简单说】二十:指针基础
- java使用外部库_在Java中使用外部库
- Linux查看显示编辑文本文件
- 深入浅出OOP(一): 多态和继承(早期绑定/编译时多态)
- 用UITextView加载rtfd文件
- Android本地数据存储:Shared Preferences安全风险浅析
- 模仿斗地主玩法实现扑克牌的分发
- php强类型 vscode,VSCode 扩展入门,后缀代码补全的实现
- (10)大类资产配置一升级版股债平衡
- 【Top 30+案例评选】CSDN“2019 优秀AI、IoT应用案例TOP 30+”正式发布
- 使用xetex直接由围棋棋谱文件创建pdf书籍
- Windows 7远程桌面登录时崩溃
- 【presto】presto查询报错整理
- 时间序列数据集:UCR Time Series Classification Archive【共128个数据集】
- js php滑动拼图解锁,js 滑动拼图验证码