MST
星途 面试题库

面试题:ElasticSearch删除文档恢复机制之基础原理

请简述ElasticSearch删除文档时,内部大致的恢复机制原理,包括删除标记的使用以及后续可能涉及的操作。
28.0万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试
  1. 删除标记的使用
    • 在ElasticSearch中,当删除一个文档时,并不会立即从磁盘上物理删除该文档。而是给该文档添加一个删除标记。这是因为ElasticSearch采用的是基于Lucene的倒排索引结构,直接物理删除文档会影响索引的整体结构,成本较高。
    • 例如,假设文档doc1要被删除,ElasticSearch会在内部标记该doc1为已删除状态,在后续的搜索过程中,带有删除标记的文档不会被返回。
  2. 后续可能涉及的操作
    • 段合并:Lucene索引由多个段(Segment)组成。随着文档的不断删除和新增,段中会包含很多已删除的文档。在段合并过程中,ElasticSearch会将多个小的段合并成一个大的段。在这个合并过程中,带有删除标记的文档不会被复制到新的段中,从而实现了对这些删除文档的物理删除。例如,当段segment1segment2合并时,已删除的文档不会出现在合并后的新段中。
    • 索引刷新:ElasticSearch会定期进行索引刷新操作。在刷新过程中,内存中的数据会被写入磁盘,生成新的段。在这个过程中,也会处理删除标记,确保带有删除标记的文档不会被持久化到新生成的段中。同时,刷新操作也会更新相关的元数据信息,使得搜索操作能够准确地排除已删除的文档。