Elasticsearch(面试篇)

devtools/2024/9/23 21:03:07/

目录

Elasticsearch的倒排索引是什么?

详细描述一下Elasticsearch更新和删除文档的过程

描述一下Elasticsearch搜索的过程


兄弟们一起加油 ! ! !

Elasticsearch的倒排索引是什么?

传统我们索引通过文章,逐个遍历找到对应关键词的位置。而倒排索引,是通过分成策略,形成了词和文章的映射关系表,这种词典+映射表即为倒排索引。有了倒排索引,就能实现O(1) 时间复杂度的效率检索文章了,极大的提高了检索效率。

详细描述一下Elasticsearch更新和删除文档的过程

1. 删除和更新也都是写操作,但是Elasticsearch中的文档是不可变的,因此不能被删除或则改动以展示其变更;

2. 磁盘上的每个段都有一个相应的 .del文件。当删除请求发送后,文档没有真的被删除而是在 .del文件中被标记为删除,新版本的文档被索引到一个新段。旧版本的文档依然能匹配查询,但是会在结果中被过滤掉。

描述一下Elasticsearch搜索的过程

1. 搜索被执行成一个两阶段过程,我们称之为Query Then Fetch;

2. 在初始查询阶段时,查询会广播到索引中每一个分片拷贝(主分或者副本分片)。每个分片在本地执行搜索并构建一个文档匹配的大小为from + size的优先队列

3. 每个分片返回各自优先队列中所有文档的ID和排序值给协调节点,它合并这些值到自己的优先队列中来产生一个全局排序后的结果列表。

4. 接下来就是 取回阶段,协调节点辨别出哪些文档需要被取回并向相关的分片体骄傲多个GET请求。每个分片加载并丰富文档,如果有需要的话,接着返回文档给协调节点。一旦所有的文档都被取回了,协调节点返回结果给客户端。

5. 补充:Query Then Fetch 的搜索类型在文档相关性打分的时候参考的时本分片的数据,这样在文档数量较少的时候可能不够准确,DFS Query Then Fetch增加了一个预查询的处理,询问Term和Document frequency,这个评分更准确,但是性能会变差。

后续会继续增加该文章面试问题


http://www.ppmy.cn/devtools/99378.html

相关文章

系统应用工程师

文章目录 系统应用工程师在芯片领域中的角色和职责系统应用工程师的具体工作系统应用工程师的存在价值系统应用工程师的重要性系统应用工程师不明显存在于产品线上的原因系统应用工程师与架构师的区别系统应用工程师未来发展系统应用工程师产品线地位系统应用工程师需要具备的能…

【每日一题 | 数据结构 | 树的转换与遍历】

重要知识点讲解 考研中只会涉及到两种树的存储,一是二叉树的存储方式,二是一般树的存储方式。二叉树的存储方式,主要有两种: 链表存储:定义一个结构体,包含数据和左右节点的指针,指针将多个节点…

安装torchvision==0.5.0

安装pytorch 1.4 但是在当前配置的镜像源中找不到 torchvision0.5.0 这个版本的包。 直接找资源下载 网址添加链接描述 直接运行该命令,成功。 然后重复运行上面的命令就可以了 # CUDA 9.2 conda install pytorch1.4.0 torchvision0.5.0 cudatoolkit9.2 -c pyto…

[数据集][目标检测]电力场景输电线导线散股检测数据集VOC+YOLO格式3890张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3890 标注数量(xml文件个数):3890 标注数量(txt文件个数):3890 标注…

稀土阻燃协效剂在木质地板中的应用

木质地板作为一种天然材料,非常容易燃烧,因此需要采取措施来增强其阻燃性能。稀土阻燃协效剂基于稀土4f电子层结构带来的特有属性,在聚合物材料燃烧时可催化酯化成炭,迅速在高分子表面形成致密连续的碳层,隔绝聚合物材料内部的可燃性气体与氧…

【ARM+Codesys 客户案例 】 基于RK3568/A40i/STM32+CODESYS在工厂自动化中的应用:铆接机

应用:铆接机: 连接、压入和焊接工艺中,铆接机的加工过程控制 Berghof向德国Wener Krayer公司提供铆接机的显控一体控制器,该控制器有强大的I/O扩展功能。使用该控制器,可以显著减少铆接过程中的失误率或次品率。其体积…

SOMEIP_ETS_061: Sending_two_SOMEIP_Messages_in_a_row

测试目的: 验证设备(DUT)能够处理在单个UDP数据包中发送的多个SOME/IP消息,并对所有这些SOME/IP消息给出正确的响应。 描述 本测试用例旨在检查DUT在接收到一个包含多个SOME/IP消息的UDP数据包时,是否能够对所有包含…

【分布式】分布式Session共享

这里通过SpringSession来实现Session的共享&#xff0c;Session数据存储在Redis中 SpringSession的操作指南&#xff1a; https://docs.spring.io/spring-session/docs/2.5.6/reference/html5/guides/boot-redis.html 导入相关的依赖 <dependency><groupId>org.s…