当前位置: 首页 > news >正文

Elasticsearch(面试篇)

目录

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,这个评分更准确,但是性能会变差。

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 第三十九篇-TeslaP40+CosyVoice-安装
  • 云计算实训38——docker网络、跨主机容器之间的通讯
  • STM32(F103ZET6)第十九课:FreeRtos的移植和使用
  • SQLserver使用sql语句创建主键,外键,唯一约束,自增
  • CSS中的元素布局与定位详细说明
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • Android插件化技术之加载未安装APK
  • 数据链路层(Mac帧,报头字段,局域网通信原理),MTU,MSS,ip报文的分包与组装(ip报头字段介绍,组装过程,判断是否被分片/收到全部分片)
  • 【LeetCode面试150】——54螺旋矩阵
  • Codeforces 1304C - Air Conditioner(1500)
  • MYSQL 优化
  • 高级前端工程师React面试题
  • pikachu靶场通关攻略(XSS)(1~10关)
  • 大模型企业应用落地系列四》基于大模型的对话式推荐系统》大模型底座层
  • 探索Python性能监控的瑞士军刀:psutil的神秘面纱
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Apache的80端口被占用以及访问时报错403
  • Cookie 在前端中的实践
  • ES6核心特性
  • go语言学习初探(一)
  • Laravel核心解读--Facades
  • React-Native - 收藏集 - 掘金
  • SQLServer插入数据
  • vuex 学习笔记 01
  • 聚类分析——Kmeans
  • 如何胜任知名企业的商业数据分析师?
  • -- 数据结构 顺序表 --Java
  • 我感觉这是史上最牛的防sql注入方法类
  • 一个JAVA程序员成长之路分享
  • Java数据解析之JSON
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #70结构体案例1(导师,学生,成绩)
  • #pragma data_seg 共享数据区(转)
  • #在 README.md 中生成项目目录结构
  • (C#)一个最简单的链表类
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (回溯) LeetCode 131. 分割回文串
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四) 虚拟摄像头vivi体验
  • (转)visual stdio 书签功能介绍
  • ./configure、make、make install 命令
  • .java 9 找不到符号_java找不到符号
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET 表达式计算:Expression Evaluator