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

时间:2024-12-18 14:15:00
1、删 除 和 更 新 也 都 是 写 操 作 , 但 是 Elasticsearch 中的 文 档 是 不 可 变 的 , 因 此 不 能被 删 除 或 者 改 动 以 展 示 其 变 更 ;
2、磁盘 上 的 每 个 段 都 有 一 个 相 应 的 .del 文件 。当删 除 请 求 发 送 后 ,文档 并 没 有 真 的被 删 除 , 而 是 在 .del 文件 中 被 标 记 为 删 除 。 该 文 档 依 然 能 匹 配 查 询 , 但 是 会 在结果 中 被 过 滤 掉 。 当 段 合 并 时 , 在 .del 文件 中 被 标 记 为 删 除 的 文 档 将 不 会 被 写 入
新段 。
3、在新 的 文 档 被 创 建 时 ,Elasticsearch 会为 该 文 档 指 定 一 个 版 本 号 ,当执 行 更 新时 , 旧版 本 的 文 档 在 .del 文件 中 被 标 记 为 删 除 , 新版 本 的 文 档 被 索 引 到 一 个 新 段 。旧版 本 的 文 档 依 然 能 匹 配 查 询 , 但 是 会 在 结 果 中 被 过 滤 掉 。