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

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

相关推荐
KKKlucifer几秒前
从 “人工标注” 到 “AI 驱动”:数据分类分级技术的效率革命
大数据·人工智能·分类
天远云服3 分钟前
Spring Boot 金融实战:如何清洗天远API的 KV 数组格式风控数据
大数据·api
豆苗学前端3 分钟前
HTML + CSS 终极面试全攻略(八股文 + 场景题 + 工程落地)
前端·javascript·面试
我爱鸢尾花8 分钟前
第十四章聚类方法理论及Python实现
大数据·python·机器学习·数据挖掘·数据分析·聚类
南山安2 小时前
Vue学习:ref响应式数据、v-指令、computed
javascript·vue.js·面试
数据猿2 小时前
【金猿人物展】涛思数据创始人、CEO陶建辉:实现AI时代时序数据库向“数据平台”的转型
大数据·数据库·人工智能·时序数据库·涛思数据
GIS数据转换器2 小时前
2025无人机遥感新国标解读
大数据·科技·安全·机器学习·无人机·智慧城市
Light602 小时前
破局“数据孤岛”:构建业务、财务、指标三位一体的智能数据模型
java·大数据·开发语言
一个java开发2 小时前
Dask 配置文件加载机制说明
大数据·python
半夏知半秋2 小时前
Elasticsearch Query DSL 指令整理
大数据·数据库·笔记·学习·elasticsearch·搜索引擎·全文检索