| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> ElasticSearch面试相关问题 -> 正文阅读 |
|
[大数据]ElasticSearch面试相关问题 |
目录 1.ElasticSearch为什么是近实时搜索的?? ? ? 1.ElasticSearch为什么是近实时搜索的?? ? ?? ? ? ? ?Elasticsearch检索不是实时的,是因为 插入不是实时的,数据不会实时写入磁盘。memory buffer 写入file system cache有1s是延迟.所以不是实时的,具体看问题2写数据的流程 2.ElasticSearch写数据的流程是什么样子的?????????写数据的过程,数据----->memory buffer -->file system cache--->disk 第一个阶段? ?memory buffer -->file system cache 默认是每1s做一次refresh,只有refresh才能查询到。 第二个阶段? file system cache--->disk 默认是每30m做一次flush. 所以默认写数据到可以查询到有1s的延迟。 为了防止数据断电丢失数据,使用同步写数据到translog,默认每一个index,delete,update或者bulk请求提交一次。 ? 3.什么时候情况下写入的数据才可以查询到?? ? ? ? 只有做了refresh以后,写入的数据才可以查询到。 4.如何才能保证Es中的数据实时查询?1.强制执行refresh,可能对ES的性能产生影响。 2.如果是做批量索引构建,可以先让refresh临时关闭,副本数设置为0,等到索引都提交完后才能之后,再打开refresh. 5.ElasticSearch读数据是流程是什么样子的?? ? ?elasticsearch的查询分为两个阶段,一个是query阶段,一个是fetch阶段 query阶段是从所有的shard上读取相关的documentId和排序字段值,在coordinating node(协调节点上)进行汇总,对所有的结果进行排序,然后指定分页的数据。 fetch阶段是根据documentId然后构建一个mulit-get请求,发送到响应的shard上从_source上获取需要加载的数据,最终返回给客户端。 6.参考1.https://blog.csdn.net/u010454030/article/details/79794788----elasticsearch的查询 2.https://segmentfault.com/a/1190000037450984-----作者写的很好,多读几遍 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:26:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |