【Elasticsearch】面试题汇总(2023.6)

这篇具有很好参考价值的文章主要介绍了【Elasticsearch】面试题汇总(2023.6)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文章会整理关于ES的最新面试热门问题,并免费持续更新。。。

  1. ES中索引优化思路?

    ES索引优化主要从两个方面解决问题:

    一、索引数据过程 大家可能会遇到索引数据比较慢的过程。其实明白索引的原理就可以有针对性的进行优化。ES索引的过程到相对Lucene的索引过程多了分布式数据的扩展,而这ES主要是用tranlog进行各节点之间的数据平衡。所以从上我可以通过索引的settings进行第一优化:

    这两个参数第一是到tranlog数据达到多少条进行平衡,默认为5000,而这个过程相对而言是比较浪费时间和资源的。所以我们可以将这个值调大一些还是设为-1关闭,进而手动进行tranlog平衡。

    第二参数是刷新频率,默认为120s是指索引在生命周期内定时刷新,一但有数据进来能refresh像lucene里面commit,我们知道当数据addDoucment后,还不能检索到要commit之后才能行数据的检索,所以可以将其关闭,在最初索引完后手动refresh一之,然后将索引setting里面的index.refresh_interval参数按需求进行修改,从而可以提高索引过程效率。

    另外的知道ES索引过程中如果有副本存在,数据也会马上同步到副本中去。我个人建议在索引过程中将副本数设为0,待索引完成后将副本数按需量改回来,这样也可以提高索引效率。 "number_of_replicas": 0;

    再有一些优化 查看外链:

    ES索引优化方案_es索引数据太多如何调优_大龄打工的博客-CSDN博客
     

        

     3.es 为什么搜索快?          

  • 磁盘东西尽量搬内存
  • 各种奇技淫巧算法
  • 苛刻态度使用内存

    4. es 深翻页问题

先查后取的过程支持用 from 和 size 参数分页,但是这是 有限制的 。 要记住需要传递信息给协调节点的每个分片必须先创建一个 from + size 长度的队列,协调节点需要根据 number_of_shards * (from + size) 排序文档,来找到被包含在 size 里的文档。

取决于你的文档的大小,分片的数量和你使用的硬件,给 10,000 到 50,000 的结果文档深分页( 1,000 到 5,000 页)是完全可行的。但是使用足够大的 from 值,排序过程可能会变得非常沉重,使用大量的CPU、内存和带宽。因为这个原因,我们强烈建议你不要使用深分页。

实际上, “深分页” 很少符合人的行为。当2到3页过去以后,人会停止翻页,并且改变搜索标准。会不知疲倦地一页一页的获取网页直到你的服务崩溃的罪魁祸首一般是机器人或者web spider。

再有,使用scroll 查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询,而又不用付出深度分页那种代价。

游标查询允许我们 先做查询初始化,然后再批量地拉取结果。 这有点儿像传统数据库中的 cursor 。

游标查询会取某个时间点的快照数据。 查询初始化之后索引上的任何变化会被它忽略。 它通过保存旧的数据文件来实现这个特性,结果就像保留初始化时的索引 视图 一样。

深度分页的代价根源是结果集全局排序,如果去掉全局排序的特性的话查询结果的成本就会很低。 游标查询用字段 _doc 来排序。 这个指令让 Elasticsearch 仅仅从还有结果的分片返回下一批结果。

启用游标查询可以通过在查询的时候设置参数 scroll 的值为我们期望的游标查询的过期时间。 游标查询的过期时间会在每次做查询的时候刷新,所以这个时间只需要足够处理当前批的结果就可以了,而不是处理查询结果的所有文档的所需时间。 这个过期时间的参数很重要,因为保持这个游标查询窗口需要消耗资源,所以我们期望如果不再需要维护这种资源就该早点儿释放掉。 设置这个超时能够让 Elasticsearch 在稍后空闲的时候自动释放这部分资源。

5.为什么说 ES 搜索是近实时的?

因为文档索引在从内存缓存被写入到文件缓存系统时,虽然还没有进行提交未被 flush 到磁盘,但是缓冲区的内容已经被写入一个段(segment6)中且新段可被搜索。这就是为什么我们说 Elasticsearch 是近实时搜索: 文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。

6.Elasticsearch 是怎样保证更新被持久化在断电时也不丢失数据?

新索引文档被写入到内存缓存时,同时会记录一份到事务日志(translog)中,translog 提供所有还没有被刷到磁盘的操作的一个持久化纪录。当 Elasticsearch 启动的时候, 它会从磁盘中使用最后一个提交点去恢复已知的段,并且会重放 translog 中所有在最后一次提交后发生的变更操作。

translog 也被用来提供实时 CRUD 。当你试着通过ID查询、更新、删除一个文档,它会在尝试从相应的段中检索之前, 首先检查 translog 任何最近的变更。这意味着它总是能够实时地获取到文档的最新版本。文章来源地址https://www.toymoban.com/news/detail-496591.html

到了这里,关于【Elasticsearch】面试题汇总(2023.6)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023版面试题汇总 (日更)

    面试专栏 链接地址 Spring 修 SpringMVC 仙 SpringBoot 吗 Mybatis 求! Redis 道!

    2024年02月13日
    浏览(35)
  • (Cisco)思科网院所有模块测试题答案整理汇总_计算机网络

    本学期学习了计算机网络专业课,临近期末,老师安排了思科网院的模块组考试,为了方便复习,博主便把所有模块的试题整理到一起了。分享出来希望能够帮助到大家,但是这里面的试题还是不够全,小伙伴们要是在本文中找不到有关试题,可以自己去网页搜索一下。 以下

    2024年02月03日
    浏览(57)
  • 2023网络安全面试题汇总(附答题解析+配套资料)

    随着国家政策的扶持,网络安全行业也越来越为大众所熟知,相应的想要进入到网络安全行业的人也越来越多,为了更好地进行工作,除了学好网络安全知识外,还要应对企业的面试。 所以在这里我归总了一些网络安全方面的常见面试题,希望对大家有所帮助。 内容来自于

    2024年02月16日
    浏览(50)
  • 软件测试最全面试题及答案整理(2023最新版)

    目录 1、你的测试职业发展是什么? 2、你认为测试人员需要具备哪些素质 3、你为什么能够做测试这一行 4、测试的目的是什么? 5、测试分为哪几个阶段? 6、单元测试的测试对象、目的、测试依据、测试方法? 7、怎样看待加班问题 8、结合你以前的学习和工作经验,你认为如何

    2024年02月05日
    浏览(56)
  • 2023网络安全常见面试题汇总(附答案解析+配套资料)

    以下为网络安全各个方向涉及的面试题,星数越多代表问题出现的几率越大,祝各位都能找到满意的工作。 注:所有的资料都整理成了PDF,面试题和答案将会持续更新,因为无论如何也不可能覆盖所有的面试题。 目录 一、渗透测试 二、Web安全相关 三、PHP安全 四、JAVA安全

    2024年02月15日
    浏览(35)
  • 微信小程序反编译(2023.6)适用

    当碰到不会写的小程序功能时,正好看到隔壁小程序有类似的功能,一般都想借鉴一下,本文介绍小程序反编译的方法,截止到2023.6月依然是使用的。 有部分小程序反编译不了的,毕竟有些大公司让你看到了源码,你转身copy一个咋办,对吧! 1、 nodejs 环境安装; 2、 小程序

    2024年02月16日
    浏览(44)
  • 网络安全面试题大全(整理版)300+面试题附答案详解,最全面详细

    随着国家政策的扶持,网络安全行业也越来越为大众所熟知,想要进入到网络安全行业的人也越来越多。 为了拿到心仪的Offer之外,除了学好网络安全知识以外,还要应对好企业的面试。 作为一个安全老鸟,工作这么多年,面试过很多人也出过很多面试题目,也在网上收集了

    2024年02月08日
    浏览(58)
  • 网络安全面试题大全(整理版)500+面试题附答案详解,最全面详细,看完稳了

    随着国家政策的扶持,网络安全行业也越来越为大众所熟知,想要进入到网络安全行业的人也越来越多。 为了拿到心仪的Offer之外,除了学好网络安全知识以外,还要应对好企业的面试。 作为一个安全老鸟,工作这么多年,面试过很多人也出过很多面试题目,也在网上收集了

    2024年02月09日
    浏览(49)
  • 大厂经典运维监控(Zabbix+Prometheus)面试题整理汇总

    1、监控原则 监控是基础设施,目的是为了解决问题,不要只朝着大而全去做,尤其是不必要的指标采集,浪费人力和存储资源(To B商业产品例外)。 需要处理的告警才发出来,发出来的告警必须得到处理。 简单的架构就是最好的架构,业务系统都挂了,监控也不能挂。G

    2024年02月06日
    浏览(41)
  • 【面试】Java高频面试题(2023最新整理)

    JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib 就是JVM工作所需要的类库。 对于基本类型,== 比较的是值; 对于引用类型,==比较的是地址; equals不能用于基

    2023年04月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包