栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ElasticSearch面试相关问题

ElasticSearch面试相关问题

目录

1.ElasticSearch为什么是近实时搜索的?     

2.ElasticSearch写数据的流程是什么样子的?

3.什么时候情况下写入的数据才可以查询到?

4.如何才能保证Es中的数据实时查询?

5.ElasticSearch读数据是流程是什么样子的?

6.参考


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-----作者写的很好,多读几遍

3.https://segmentfault.com/a/1190000040019662

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282928.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号