最常见的ES面试核心问答知识点

简介: ES核心知识点面试经验分享

一、什么是倒排索引?有什么好处?

索引: 从ID到内容。

倒排索引: 从内容到ID。好处: 比较适合做关键字检索。 可以控制数据的总量。提高查询效率。

搜索引擎为什么比MySQL查询快? lucence

文章 -》 term ->排序 term dictionary -> term index -》 Posting List -> [文章ID ,[在文章中出现的偏移量],权重 ]TFIDF

二、ES了解多少?说说你们公司的ES集群架构。

ES: 是一个基于Lucene框架的搜索引擎产品。you know for search。提供了Restful风格的操作接口。 ELK

Lucene:是一个非常高效的全文检索引擎框架。java jar

ES的一些核心概念:

1、索引 index : 关系型数据库中的 table

2、文档 document : row

3、字段 field text\keyword\byte : 列

4、映射Mapping : Schema。

5、查询方式 DSL : SQL ES的新版本也支持SQL

6、分片 sharding 和 副本 replicas: index都是由sharding组成的。每个sharding都有一个或多个备份。 ES集群健康状态:

ES的使用场景。ES可以用在大数据量的搜索场景下,另外ES也有很强大的计算能力。用户画像

三、如何进行中文分词?用过哪些分词器?

IK分词器。

四、ES写入数据的工作原理是什么?

image.png

1、客户端发写数据的请求时,可以发往任意节点。这个节点就会成为coordinating node协调节点。

2、计算的点文档要写入的分片:计算时就采用hash取模的方式来计算。

3、协调节点就会进行路由,将请求转发给对应的primary sharding所在的datanode。

4、datanode节点上的primary sharding处理请求,写入数据到索引库,并且将数据同步到对应的replica sharding

5、等primary sharding 和 replica sharding都保存好文档了之后,返回客户端响应。

五、ES查询数据的工作原理是什么?

1、客户端发请求可发给任意节点,这个节点就成为协调节点

2、协调节点将查询请求广播到每一个数据节点,这些数据节点的分片就会处理改查询请求。

3、每个分片进行数据查询,将符合条件的数据放在一个队列当中,并将这些数据的文档ID、节点信息、分片信息都返回给协调节点。

4、由协调节点将所有的结果进行汇总,并排序。

5、协调节点向包含这些文档ID的分片发送get请求,对应的分片将文档数据返回给协调节点,最后协调节点将数据整合返回给客户端。

相关文章
|
22天前
|
Android开发
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制
|
22天前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
22天前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
|
25天前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
24 3
|
26天前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
24 2
|
26天前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
46 1
|
26天前
|
Android开发
Android面试高频知识点(1) 图解 Android 事件分发机制
Android面试高频知识点(1) 图解 Android 事件分发机制
37 1
|
2月前
|
Web App开发 前端开发 Linux
「offer来了」浅谈前端面试中开发环境常考知识点
该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
「offer来了」浅谈前端面试中开发环境常考知识点
|
1月前
|
XML 前端开发 Android开发
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制
|
2月前
|
Web App开发 前端开发 JavaScript
「offer来了」1张思维导图,6大知识板块,带你梳理面试中CSS的知识点!
该文章通过一张思维导图和六大知识板块系统梳理了前端面试中涉及的CSS核心知识点,包括CSS框架、基础样式问题、布局技巧、动画处理、浏览器兼容性及性能优化等方面的内容。