ElasticSearch面试题总结

ElasticSearch常见面试题汇总 Elasticsearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎,每个字段都被索引并可被搜索,可以快速存储、搜索、分析海量的数据。全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当查询时,根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。**(1)index 索引:**索引类似于mysql 中的数据库,Elasticesearch 中的索引是存在数据的地方,包含了一堆有相似结构的文档数据。**(2 阅读详情

本篇文章会将ElasticSearch简写为ES

1、为什么要使用ElasticSearch

系统中的数据随着业务的扩展,时间的推移会变得越来越多,如果对某个关键词进行模糊查询,传统的数据库就会放弃索引,进行全表查询,这样会导致效率特别低。ElasticSearch支持全文检索,对关键词和文档内容建立了倒排索引,可以快速查询到所需的内容。

2、ElasticsSearch和MySQL的区别

  • 类型:ES属于非关系型数据库,擅长存储非结构化数据,而MySQL属于关系型数据库,只能存储结构化数据
  • 存储过程/索引结构:MySQL需要先对表进行设计,提前定义好数据表的结构,建立正排索引;ES比较灵活,可以对Feild字段进行设计,也可以不设计,建立倒排索引
  • 事务支持:Mysql支持事务,ES不支持事务,对修改和删除无法进行回滚
  • 读写方式:Mysql使用聚簇索引和非聚簇索引相结合的方式,如果是聚簇索引找到索引也就找到了数据,如果是非聚簇索引,找到了索引后再根据聚簇索引二次查表,直到找到数据。ES的每个node节点都可以接受request,然后分发到含有该index的节点上,对应的节点经过查询、计算、排序等操作后汇总返回给分发request的节点,由该节点返回给client。每次请求都会轮询地发送到各个节点,防止请求全部打到一个节点。
  • 数据量:对于大数据量简单计算,ES具有绝对的优势,Mysql主要是查询带索引的数据,数据量通常在百万级别以下。

3、ES的查询流程

分为两个阶段:Query then Fetch
第一个阶段是查询:客户端发送查询请求到任意一个节点,此时节点便是协调节点,将请求内容进行处理并计算分片位置后,分发给对应的分片,每个分片在本地进行查询,将结果保存在有序的优先队列中返回给协调节点。
第二个阶段是取数据:协调节点获取到返回的所有数据后,产生一个全局的排序队列,返回给客户端。

4、ES的写入流程

  1. 客户端将数据发送给任意一个节点,此节点作为协调节点,
  2. 通过路由计算得到对应主分片的位置,将数据转发给主分片,主分片将数据写入,然后发送给对应的副本
  3. 副本收到数据后,将数据写入自己的分片,并将响应结果返回给主分片
  4. 主分片收到所有副本的响应结果后,在向客户端返回响应

5、ES目前的检索方式有哪些

  1. 基于DSL检索(常用)
  2. 基于URL检索
  3. 基于SQL检索(不推荐)

6、写入调优

  1. 写入前将副本数设置为0
  2. 写入前禁用刷新
  3. 写入时使用bulk批处理
  4. 尽量使用自动生成的id
  5. 写入后恢复副本数量和刷新间隔

7、ES如何实现master选举

  1. Master节点的选举是由ZenDiscovery负责的,主要包括Ping(发现)和Unicast(记录)两个模块
  2. 对所有可以成为master的节点(node.master:true)按照nodeid的字典顺序排序,每次选举时每个节点将自己知道的节点进行一次排序,选出第一个节点,暂且认为它是master节点
  3. 如果对某个节点的投票树达到一定数量(所有可以成为master的节点数N/2+1),并且它自己也选自己,那么就将该节点设置为master节点,否则重新选举直到满足条件
  4. master节点的主要职责是对集群、节点和索引的管理,不负责文档级别的管理(由node节点管理),data节点可以关闭http功能

8、集群脑裂问题

  • 同一个集群中的不同节点,对于集群的状态有了不一样的理解。
  • 成因:网络延迟,节点负载,内存回收
  • 解决方法:
    • 减少误判:discovery.zen.ping_timeout默认为3s,可以适当调大
    • 选举触发:控制选举行为发生的最小集群主节点数量
    • 角色分离:master节点和data节点分离,限制角色:
      • 主节点配置:node.master:true; node.data:false
      • 数据节点配置:node.master:false; node.data:true
关于ElasticSearch的十道经典面试题 系统中的数据,随着业务的发展,时间的推移,将会非常多,而业务中往往采用模糊查询进行数据的搜索,而模糊查询会导致查询引擎放弃索引,导致系统查询数据时都是全表扫描,在百万级别的数据库中,查询效率是非常低下的,而我们使用 ES 做一个全文索引,将经常查询的系统功能的某些字段,比如说电商系统的**商品表中商品名,描述、价格还有 id 这些字段我们放入 ES 索引库里,可以提高查询速度**。 阅读详情

相关推荐

ElasticsearchES)的经典面试题及其答案

以下是一些ElasticsearchES)的经典面试题及其答案,结合高频考点和实际应用场景整理而成:以上题覆盖了 Elasticsearch 的核心知识点,如需更深入的技术实现或源码分析,可进一步参考官方文档或相关书籍(如《Elasticsearch 权威指南》)。

liao9416的博客 5818

2023最新整理的 Elasticsearch 21道面试题

系统中的数据, 随着业务的发展, 时间的推移, 将会非常多,而业务中往往采用模糊查询进行数据的 搜索,而模糊查询会导致查询引擎放弃索引, 导致系统查询数据时都是全表扫描,在百万级别的数据库中, 查询效率是非常低下的,而我们使用 ES 做一个全文索引, 将经常查询的系统功能的某些字段,比如说电 商系统的商品表中商品名,描述、价格还有 id 这些字段我们放入 ES 索引库里,可以提高查询速度。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。

Java全能学习+面试指南 1万+

ES面试题

Elasticsearch是一个分布式的、基于RESTful API的搜索引擎和分析引擎。它允许你快速存储、搜索和分析大量数据。Elasticsearch是用Java开发的,并且基于Lucene搜索引擎库构建。倒排索引是一种数据结构,它将词汇映射到包含该词汇的所有文档的列表。这种结构使得Elasticsearch能够快速地找到包含特定词汇的所有文档,从而实现高效的全文搜索。

Kenneth55的专栏 834

面试题ES面试题及答案

在搜索引擎领域,ES可以快速地检索海量数据,支持复杂的查询语句和聚合操作。此外,ES还提供了基于日志的复制机制,可以在多个节点之间复制数据,提供数据冗余和高可用性。答:ES的数据分片是通过将数据分成多个分片来实现的。答:ES的集群是由多个节点组成的,每个节点都是独立的进程。答:ESElasticsearch的缩写,是一款开源的分布式搜索引擎。它可以快速地存储、搜索和分析大量的数据,支持全文检索、结构化查询等多种查询方式。答:ES使用的是倒排索引的方式来存储数据。(2)sum聚合:用于计算指定字段的总和。

li646495946的博客 5989

ES面试题合集

本文介绍了搜索引擎ES,在平时的工作中广泛应用于日志分析、数据归档、大数据存储等

for62的博客 3700

ElasticSearch搜索引擎常见面试题总结

一、ElasticSearch基础: 1、什么是ElasticsearchElasticsearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎,每个字段都被索引并可被搜索,可以快速存储、搜索、分析海量的数据。 全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当查询时,根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。 2、Elasticsearch 的基本概念: (1)index 索

张维鹏的博客 5万+

十、分布式搜索引擎ElasticSearch——面试题

分布式搜索引擎ElasticSearch——面试题

LQM1528490339的博客 1251

elasticsearch面试题

ElasticSearch搜索引擎常见面试题总结 - 百度文库

qq_30815659的博客 476

ElasticSearches 面试题 视频 笔记

1.概述 视频地址:活动作品花了一周时间整理了一套ElasticSearch面试题,你花点耐心看完,对你面试帮助不止一点半点! 未看完,下次看

九师兄 237

常见的ES面试题

题记 git上发现了网友总结的Elasticsearch BAT大厂面试题。只有题目,部分有答案,但不全。 正好抽出一些时间一起梳理一下。 既然是面试题,每个人都会有自己的结合业务场景的答案,没有非常标准的答案。 欢迎大家留言拍砖指正。 1、elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。 面试官:想了解应聘者之前公司接触的ES使用场景、规模,有没有做过比较大规模的索引设计、规划、调优。 解答: 如实结合自己的实践场景回答即可。 比如:

xiaoyi5224765的博客 1703

Elasticsearch——es面试题

1.es是三面? es是一个高扩展的,开源的,全文检索的,分析的引擎。 用于实时快速的 存储,搜索,分析海量数据。 2. 为什么要用到ES? 因为在商城中数据会越来越多,所以采用以往的模糊查询。(模糊查询前置配置,导致索引失效,导致都是全表扫描,效率低下)而我们使用ES做一个全文索引,我们将常用的商品字段(比如商品名,描述,价格)放入我们es的索引库中,可以提高查询速度。 3.描述一下ElasticSearch 索引文档的过程。 4.ES的节点如何了解? 节点就是ES的实例,节点有以下四种类型 主节点(可

Antoni_cy的博客 1987

面试题ElasticSearch

重新自己整理过后的es相关面试题,这里包括八股文和之前面试遇到的题,后续会持续更新~

HC_MM的博客 1706

面试 - ElasticSearch面试题

面试 - ElasticSearch面试题

qq_43350524的博客 1413

ElasticSearch搜索引擎常见面试题

Elasticsearch 是 Restful 的分布式实时全文搜索引擎,每个字段都被索引并可被搜索,可以快速存储、搜索、分析海量的数据。全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当查询时,根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。在搜索引擎中,每个文档都有对应的文档 ID,文档内容可以表示为一系列关键词的集合,通过倒排索引,可以记录每个关键词在文档中出现的次数和出现位置。

JXY20020525968的博客 307

前端面试题集合七(ES6、ES7、ES8、ES9、ES10、ES11、ES12)

前端面试题集合七(ES6、ES7、ES8、ES9、ES10、ES11、ES12)

前端金牌摸鱼达人 28万+

Elasticsearches 面试题 积累

1.概述 1.什么是集群? 集群是节点的集合,这些节点一起保存数据并提供联合索引和搜索功能。 解释索引 一个节点是一个弹性搜索实例。它是在 elasticsearch 实例开始时创建的。 Elastic Search 中的文档是什么? 在弹性搜索中,文档是可以被索引的基本信息单元。它以 JSON (key: value) 对表示。’{“user”: “nullcon”}’。每个文档都与一个类型和一个唯一的 id 相关联。 定义术语分片 每个索引都可以拆分为多个分片,以便能够分发数据。分片是索引.

九师兄 973
上一篇: 面试八股之Java基础+集合+多线程+JVM
下一篇: MySQL八股文
Fly-U
博客等级 码龄8年 56粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值